Должно ли создавать папку???

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Ramzes
Скромный человек
Скромный человек
Аватара пользователя
 
Сообщения: 5004
Зарегистрирован: 12.04.2003 (Сб) 11:59
Откуда: Из гробницы :)

Должно ли создавать папку???

Сообщение Ramzes » 05.07.2004 (Пн) 19:38

Вот пишу так:

Код: Выделить всё
Open app.path & "\my dir\dir\file.txt" for output as #1
     print #1, text1.text
close #1


Должен ли этот код создать папки "My Dir" и "dir", если их не существует?
Если нет то как создать папку?

A.A.Z.
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3035
Зарегистрирован: 30.06.2003 (Пн) 13:38

Сообщение A.A.Z. » 05.07.2004 (Пн) 23:35

Нет, этот код только ошибку выдаст.
Вот API'шка:
Код: Выделить всё
Private Declare Function MakeSureDirectoryPathExists Lib "imagehlp.dll" (ByVal lpPath As String) As Long

Tin
Woodsman
Woodsman
Аватара пользователя
 
Сообщения: 1001
Зарегистрирован: 08.12.2001 (Сб) 11:00
Откуда: Kazakhstan

Сообщение Tin » 06.07.2004 (Вт) 6:05

ну если не хочешь с апишками баловаться - лови ошибку...
on error goto 1
2
*******твой код***********
exit sub
1 if err.Number=Какому-то номеру ошибки then
mkdir КАКАЯТА
goto 2
end if
888888__88__88____88
__88________8888__88
__88____88__88__8888
__88____88__88____88

Ramzes
Скромный человек
Скромный человек
Аватара пользователя
 
Сообщения: 5004
Зарегистрирован: 12.04.2003 (Сб) 11:59
Откуда: Из гробницы :)

Сообщение Ramzes » 06.07.2004 (Вт) 11:15

:oops: Сори, не подумал что написал!!!,надо снача папку создавать:

Код: Выделить всё
Private Sub Command1_Click()
On Error GoTo errorfolder:
Dim fso
Set fso = CreateObject("Scripting.FileSystemObject")
     fso.CreateFolder "c:\new_folder\" & q
errorfolder:
If Err = 58 Then MsgBox "Папка уже существует", vbCritical
Exit Sub
End Sub


Tin
Woodsman
Woodsman
Аватара пользователя
 
Сообщения: 1001
Зарегистрирован: 08.12.2001 (Сб) 11:00
Откуда: Kazakhstan

Сообщение Tin » 06.07.2004 (Вт) 16:49

А ларчик просто открывался...
888888__88__88____88
__88________8888__88
__88____88__88__8888
__88____88__88____88

Ramzes
Скромный человек
Скромный человек
Аватара пользователя
 
Сообщения: 5004
Зарегистрирован: 12.04.2003 (Сб) 11:59
Откуда: Из гробницы :)

Сообщение Ramzes » 06.07.2004 (Вт) 18:16

:?: :?: :?: :roll:

Tarik
Агент Системы
Агент Системы
Аватара пользователя
 
Сообщения: 1222
Зарегистрирован: 03.01.2003 (Пт) 16:05
Откуда: Москва

Сообщение Tarik » 06.07.2004 (Вт) 18:23

Только зачем такой геморой
Dim fso
Set fso = CreateObject("Scripting.FileSystemObject")

, когда всё делается проще
Код: Выделить всё
dim fso as new filesystemobject
Изображение

Ever tried? Ever failed? No matter. Try again! Fail again! Fail better!

Ramzes
Скромный человек
Скромный человек
Аватара пользователя
 
Сообщения: 5004
Зарегистрирован: 12.04.2003 (Сб) 11:59
Откуда: Из гробницы :)

Сообщение Ramzes » 06.07.2004 (Вт) 18:28

Моё сообщение - полный бред? Всё, что написано выше не имеет никакого смысла?

:D
Главное что мой код работает!

Keen
Обычный пользователь
Обычный пользователь
 
Сообщения: 83
Зарегистрирован: 25.04.2004 (Вс) 10:45
Откуда: Россия => Москва

Сообщение Keen » 06.07.2004 (Вт) 18:48

А нельзя ли проще?

Вот так:
Код: Выделить всё
result$=dir("c:\mydirectory",vbdirectory)
:)

А папку можно создать с помощью mkdir, разве нет? К чему FSO? :?

Ramzes
Скромный человек
Скромный человек
Аватара пользователя
 
Сообщения: 5004
Зарегистрирован: 12.04.2003 (Сб) 11:59
Откуда: Из гробницы :)

Сообщение Ramzes » 06.07.2004 (Вт) 18:52

Keen писал(а):А нельзя ли проще?

Вот так:
Код: Выделить всё
result$=dir("c:\mydirectory",vbdirectory)
:)

А папку можно создать с помощью mkdir, разве нет? К чему FSO? :?

Данный код не рабочий, или просто я что-то не так делаю???

Keen
Обычный пользователь
Обычный пользователь
 
Сообщения: 83
Зарегистрирован: 25.04.2004 (Вс) 10:45
Откуда: Россия => Москва

Сообщение Keen » 06.07.2004 (Вт) 19:01

Ramzes писал(а):
Keen писал(а):А нельзя ли проще?

Вот так:
Код: Выделить всё
result$=dir("c:\mydirectory",vbdirectory)
:)

А папку можно создать с помощью mkdir, разве нет? К чему FSO? :?

Данный код не рабочий, или просто я что-то не так делаю???


Честно говоря накатал на скорую руку, но по сути, должен возвращать имя папки, т.е. mydirectory или c:\mydirectory - не помню... Если не будет работать, убери второй параметр.

Ramzes
Скромный человек
Скромный человек
Аватара пользователя
 
Сообщения: 5004
Зарегистрирован: 12.04.2003 (Сб) 11:59
Откуда: Из гробницы :)

Сообщение Ramzes » 06.07.2004 (Вт) 19:04

Keen писал(а):
Ramzes писал(а):
Keen писал(а):А нельзя ли проще?

Вот так:
Код: Выделить всё
result$=dir("c:\mydirectory",vbdirectory)
:)

А папку можно создать с помощью mkdir, разве нет? К чему FSO? :?

Данный код не рабочий, или просто я что-то не так делаю???


Честно говоря накатал на скорую руку, но по сути, должен возвращать имя папки, т.е. mydirectory или c:\mydirectory - не помню... Если не будет работать, убери второй параметр.

Сначала проверь, потом пахай на форум. ДАНЫЙ КОД НЕ РАБОЧИЙ

Tarik
Агент Системы
Агент Системы
Аватара пользователя
 
Сообщения: 1222
Зарегистрирован: 03.01.2003 (Пт) 16:05
Откуда: Москва

Сообщение Tarik » 06.07.2004 (Вт) 20:37

ДАННЫЙ КОД ОЧЕНЬ ДАЖЕ РАБОЧИЙ!
Если папка "c:\mydirectory" существует, то он возвращает строку "mydirectory", а если нет - пустую строку. А теперь о том, как этим можно пользоваться. Допустим, тебе надо сохранить файл 123.txt в папке "c:\blablabla". Ты не знаешь, есть ли такая папка. Тогда ты пишешь
Код: Выделить всё
dim result as string
result=dir("c:\blablabla", vbdirectory)

Потом анализируешь Result:
Код: Выделить всё
if Result = "" then ...

Если result - пустая строка, значит такой папки нет, и надо её создать.
Код: Выделить всё
if result = "" then mkdir("c:\blablabla")

После этого можешь спокойно писать код для сохранения. Более удобный вариант без переменной выглядит так
Код: Выделить всё
if dir("C:\blablabla", vbdirectory)="" then mkdir("c:\blablabla")
... [товй код]
Изображение

Ever tried? Ever failed? No matter. Try again! Fail again! Fail better!

Keen
Обычный пользователь
Обычный пользователь
 
Сообщения: 83
Зарегистрирован: 25.04.2004 (Вс) 10:45
Откуда: Россия => Москва

Сообщение Keen » 06.07.2004 (Вт) 21:14

Tarik писал(а):ДАННЫЙ КОД ОЧЕНЬ ДАЖЕ РАБОЧИЙ!
Если папка "c:\mydirectory" существует, то он возвращает строку "mydirectory", а если нет - пустую строку. А теперь о том, как этим можно пользоваться. Допустим, тебе надо сохранить файл 123.txt в папке "c:\blablabla". Ты не знаешь, есть ли такая папка. Тогда ты пишешь
Код: Выделить всё
dim result as string
result=dir("c:\blablabla", vbdirectory)

Потом анализируешь Result:
Код: Выделить всё
if Result = "" then ...

Если result - пустая строка, значит такой папки нет, и надо её создать.
Код: Выделить всё
if result = "" then mkdir("c:\blablabla")

После этого можешь спокойно писать код для сохранения. Более удобный вариант без переменной выглядит так
Код: Выделить всё
if dir("C:\blablabla", vbdirectory)="" then mkdir("c:\blablabla")
... [товй код]


Так все-таки рабочий :D ! А на меня ругались по чем зря... Нехорошо, товарищи, нехорошо. :?

Код: Выделить всё
Public Function CheckDir(Path$) As Boolean
    If Not Dir(Path$, vbDirectory) = "" Then CheckDir = True
End Function

Ramzes
Скромный человек
Скромный человек
Аватара пользователя
 
Сообщения: 5004
Зарегистрирован: 12.04.2003 (Сб) 11:59
Откуда: Из гробницы :)

Сообщение Ramzes » 06.07.2004 (Вт) 21:51

:oops: Sory


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 12

    TopList