Сайт Влада

Как узнать, существует ли файл или папка?

И снова мы обходимся без АПИ, потому что в ВБ есть замечательная, наверное, самая важная функция для работы с файлами и папками - функция DIR:

DIR [путь], [атрибуты]

Все элементарно - вы задаете функции DIR путь к файлу, а она возвращает этот путь, если файл или папка существует, или возвращает пустую строку, если нет такого имени:

If Dir("C:\My Files\file.txt") = "" Then MsgBox "Увы, такого файла не существует!"

Но здесь есть свои нюансы, которые скрываются в аргументе [атрибуты].
Если его не указывать, программа будет проверять наличие только файлов без аттрибутов «скрытый» и «системный».

Давайте разберемся в его константах:

А что, если файл и скрытый, и системный? Или мы имеем дело со скрытой папкой?
Надо комбинировать константы, например:

Dir("C:\Skritaya Papka", vbDirectory And vbHidden)

И, напоследок, случай. Что, если мы не знаем точно, скрытый ли это файл или системный? Нам поможет «Or»:

Dir("C:\HiddenOrSystemFile.SYS", vbHidden Or vbSystem)

У функции Dir также есть масса интересных возможностей:

Dir("C:\Windows\System32\*.dll") ' Вернет имя первого файла с расширением DLL в папке System32.
Dir("C:\Windows\System32", vbDirectory) ' Проверит существование System32 в каталоге Windows.
Dir("C:\Windows\System32\", vbDirectory) ' Вернет путь к первой папке (по алфавиту) в каталоге System32

Оригинальная статья Влада Рубцова. https://vladikcomper.scanf.su/