Проверка наличия папки

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Yuri_S
Обычный пользователь
Обычный пользователь
 
Сообщения: 97
Зарегистрирован: 17.07.2003 (Чт) 20:12
Откуда: Kiev,Ukraine

Проверка наличия папки

Сообщение Yuri_S » 04.01.2004 (Вс) 13:11

Как узнать, существует ли директория по определенному адресу?
Желательно без АПИ...

_Мика_
Гуру
Гуру
 
Сообщения: 1459
Зарегистрирован: 24.10.2003 (Пт) 15:05
Откуда: г. Москва, м.Речной вокзал

Сообщение _Мика_ » 04.01.2004 (Вс) 13:29

Private Function FileEx(FullFileName As String) As Boolean
On Error GoTo MakeF
'If file does Not exist, there will be an Error
Open FullFileName For Input As #1
Close #1
'no error, file exists
FileEx = True
Exit Function

MakeF:
'error, file does Not exist
FileEx = False
Exit Function
End Function
-Папа, а правда, что форумы делают людей дибилами?
-гы гы гы, сынок, лол!

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

Сообщение A.A.Z. » 04.01.2004 (Вс) 15:04

_Мика_, просили директорию, а не файл! :roll:
Можно использовать FSO, тогда в References подключи Microsoft Scripting Runtime и юзай этот код:
Код: Выделить всё
Sub Form_Load()
Dim FSO As New Scripting.FileSystemObject
If FSO.FolderExists("C:\Papka") Then MsgBox "Папка есть" Else MsgBox "Папки нет"
End Sub

'Аналогично FileExists - наличие файла, DriveExists - наличие жесткого диска
Последний раз редактировалось A.A.Z. 04.01.2004 (Вс) 15:07, всего редактировалось 1 раз.
Нет меня больше

Yuri_S
Обычный пользователь
Обычный пользователь
 
Сообщения: 97
Зарегистрирован: 17.07.2003 (Чт) 20:12
Откуда: Kiev,Ukraine

Сообщение Yuri_S » 04.01.2004 (Вс) 15:05

спасибо, мне пригодится и то и другое.......больше по теме вопросов нет

hCORe
VB - Экстремал
VB - Экстремал
Аватара пользователя
 
Сообщения: 2332
Зарегистрирован: 22.02.2003 (Сб) 15:21
Откуда: parent directory

Сообщение hCORe » 04.01.2004 (Вс) 15:07

Используй эту функцию, и все будет хорошо:

Код: Выделить всё
Public Function FExist (FolderName as String) as Boolean
On Error Resume Next
    ChDir FolderName
    If Err<>0 Then FExist=False Else FExist=True
    Err.Clear
End Function


Пользоваться функцией можно вот так:

Код: Выделить всё
If FExist("<имя твоей папки>") Then
    <действия>
Else
    <действия, если папка не существует>
End If
<продолжение кода программы>
Моду создают модоки, а распространяют модозвоны.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 05.01.2004 (Пн) 12:21

В любом каталоге FAT, FAT32, NTFS обязательно присутствует специальный файл 'nul'. Т.е. можно, например, так:
Код: Выделить всё
If Len(Dir$("C:\MyDir\nul"))>0 Then ...
Lasciate ogni speranza, voi ch'entrate.

Yuri_S
Обычный пользователь
Обычный пользователь
 
Сообщения: 97
Зарегистрирован: 17.07.2003 (Чт) 20:12
Откуда: Kiev,Ukraine

Сообщение Yuri_S » 05.01.2004 (Пн) 18:21

круто....вот мне бы все это запомнить 8)
Последний раз редактировалось Yuri_S 09.01.2004 (Пт) 21:49, всего редактировалось 1 раз.

net
Новичок
Новичок
 
Сообщения: 43
Зарегистрирован: 08.07.2003 (Вт) 10:31
Откуда: Ялта/Ukraine

Сообщение net » 09.01.2004 (Пт) 0:00

Всё проще :
попро буй открыть эту паку с пом Shell "explorer.exe " ,а потом напиши,типа on error msgbox "нэту"

SSecurity
Служба безопасности
Аватара пользователя
 
Сообщения: 1283
Зарегистрирован: 19.08.2003 (Вт) 1:11
Откуда: Россия, Мурманск

Сообщение SSecurity » 09.01.2004 (Пт) 2:15

обычной функцией DIR увидешь все что надо ... где-тьо я это уже писал ....

Наличие Nil - необязательно просто если ты напишешь путь к файлуфункция возвратит тебе есть он или нет в строковом представлении ..а если напишешь не файл а папку .... то таже система.

короче ...
Код: Выделить всё
Path = "c:\windows"
If Dir(Path)="" then msgbox "Папки "+Path+" тут нет!"
Программист - это маленький Бог, а все его ошибки - это самостоятельные творения:)
Так задумано:)

Yuri_S
Обычный пользователь
Обычный пользователь
 
Сообщения: 97
Зарегистрирован: 17.07.2003 (Чт) 20:12
Откуда: Kiev,Ukraine

Сообщение Yuri_S » 09.01.2004 (Пт) 21:49

Угу, ясно, спасибо

TrueTrue
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 167
Зарегистрирован: 20.05.2009 (Ср) 23:18

Re:

Сообщение TrueTrue » 13.02.2017 (Пн) 9:01

Самый надёжный способ - этот.
alibek писал(а):В любом каталоге FAT, FAT32, NTFS обязательно присутствует специальный файл 'nul'. Т.е. можно, например, так:
Код: Выделить всё
If Len(Dir$("C:\MyDir\nul"))>0 Then ...


Делал програмку типа Бекап папок Windows, так другие варианты периодически не срабатывали по непонятным причинам, в частности такой:
Код: Выделить всё
Dir(Path)=""


помоему не сработал на папке Windows\Fonts

видимо зависит от атрибутов папки. Более глубоко не разбирался.


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

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

Сейчас этот форум просматривают: Google-бот, Yandex-бот и гости: 21

    TopList