Объект FileSystemObject метод DriveExists, FolderExists и FileExists — Проверить наличие файла, папки или диска

Объект FileSystemObject метод DriveExists, FolderExists и FileExists — Проверить наличие файла, папки или диска Объектная модель Windows Script Host

Работа с файловой системой Windows приходится выполнять различные задачи – проверить наличие файла, папки или просто, определить местоположение документа. И если в операционной системе всё сводится к строке поиска, где нужно задать имя документа, то в программировании все это носит немного другой характер…

В этой статье мы рассмотрим три метода объекта FileSystemObject, который позволяет работать с файловой системой – DriveExists, FolderExists и FileExists, все три метода работают по одной логике, то есть, в качестве параметра (path) им передается стока (путь к диску, папке или файлу), если значение существует (диск, папка или файла), то методы возвращают логическое значениеtrue, если нет – логическое значение false.

  • DriveExists(path) – Проверить наличие диска
  • FolderExists(path) – Проверить наличие папки
  • FileExists(path) – Проверить наличие файла

Прежде чем мы приступим к программированию, давайте уточним некоторые различии при написании программного кода. При использовании данных методов в сценарии на языке vbscript, они буду возвращать значение «ложь» или «истина», а в сценариях на языке jscript будет возвращаться значение «true» и «false». Также обратите внимание, что метод DriveExists вернет логическую истину даже в том случае, если идёт проверка наличия съёмного дисковода, и в нём нет диска, файловая система Windows.

Хорошо, теперь давайте приступи к написанию примеров:

'**********************************************' Объект FileSystemObject, методы DriveExists FolderExists FileExists' Проверить наличие файла, папки или диска' Drive_Folder_FileExists.vbs'********************************************** OptionExplicit dim FSO, listdim get_drive, get_folder, get_filedim get_drive_ok, get_folder_ok, get_file_ok ' сперва создаем ссылку на экземпляр объекта FileSystemObjectset FSO=CreateObject ("Scripting.FileSystemObject") list = "Проверить наличие файла, папки и диска" & vbCrLf & vbCrLf '------------------------------------------------------------' переменные хранять выдуманные данныеget_drive = "J:"get_folder = "J:Catalog"get_file = "J:Catalogmy_file.txt"'------------------------------------------------------------ '------------------------------------------------------------' переменные хранят реальные данныеget_drive_ok = "C:"get_folder_ok = "C:Windows"get_file_ok = "C:Windowsnotepad.exe"'------------------------------------------------------------ ' получаем список значений для выдуманных данныхlist = list & "Диск " & get_drive & " существует = " & FSO.DriveExists(get_drive) & vbCrLflist = list & "Папка " & get_folder & " существует = " & FSO.FolderExists(get_folder) & vbCrLflist = list & "Файл " & get_file & " существует = " & FSO.FileExists(get_file) & vbCrLf & vbCrLf ' получаем список значений для реальных данныхlist = list & "Диск " & get_drive_ok & " существует = " & FSO.DriveExists(get_drive_ok) & vbCrLflist = list & "Папка " & get_folder_ok & " существует = " & FSO.FolderExists(get_folder_ok) & vbCrLflist = list & "Файл " & get_file_ok & " существует = " & FSO.FileExists(get_file_ok) ' выводим список значенийMsgBox list

В самом начале мы включаем проверку переменных с помощью конструкции Option Explicit и объявляем три блока переменных:

dim FSO, list – переменная FSO хранит ссылку на экземпляр объекта FileSystemObject, через неё мы получим доступ к методам DriveExists, FolderExists и FileExists, переменная list будет хранить список значений  — имя диска (папки, файла) и значение, которое возвращается соответствующим методом.

dim get_drive, get_folder, get_file – данные три переменные хранят путь к диску, папке и файлу, наличие которых надо проверить, соответствен. Я специально пописал для них мнимые значения, то есть, скорее всего, такого диска, папки или файла существовать не будет.

dim get_drive_ok, get_folder_ok, get_file_ok – для данных переменных я прописал уже реальные значения, которые позволят проверить наличие файла, диска и папки.

Далее происходит процесс создания ссылки на объект, и присвоение значений для соответствующий переменных. В самом конце мы используем функцию MsgBox языка vbscript для вывода значения переменной list. Обратите внимание, что для перевода строки мы использовали именованную константу vbCrLf.

//**********************************************// Объект FileSystemObject, методы DriveExists FolderExists FileExists// Проверить наличие файла, папки или диска// Drive_Folder_FileExists.js//********************************************** var FSO, list;var get_drive, get_folder, get_file;var get_drive_ok, get_folder_ok, get_file_ok; // сперва создаем ссылку на экземпляр объекта FileSystemObjectFSO=WScript.CreateObject("Scripting.FileSystemObject"); list ="Проверить наличие файла, папки и дискаnn"; //------------------------------------------------------------// переменные хранять выдуманные данныеget_drive ="J:";get_folder ="J:\Catalog";get_file ="J:\Catalog\my_file.txt";//------------------------------------------------------------ //------------------------------------------------------------// переменные хранят реальные данныеget_drive_ok ="C:";get_folder_ok ="C:\Windows";get_file_ok ="C:\Windows\notepad.exe";//------------------------------------------------------------ // получаем список значений для выдуманных данныхlist +="Диск "+ get_drive +" существует = "+ FSO.DriveExists(get_drive)+"n";list +="Папка "+ get_folder +" существует = "+ FSO.FolderExists(get_folder)+"n";list +="Файл "+ get_file +" существует = "+ FSO.FileExists(get_file)+"nn"; // получаем список значений для реальных данныхlist +="Диск "+ get_drive_ok +" существует = "+ FSO.DriveExists(get_drive_ok)+"n";list +="Папка "+ get_folder_ok +" существует = "+ FSO.FolderExists(get_folder_ok)+"n";list +="Файл "+ get_file_ok +" существует = "+ FSO.FileExists(get_file_ok); // выводим список значенийWScript.Echo(list);

В этом примере сценария на языке jscript, логика работы аналогична предыдущему сценарию на языке vbscript. Обратите внимание, что тут мы для вывода данных использовали функцию Echo объекта WScript (смотрите статью «Объект WScript — базовые свойства и методы (sleep, quit, echo)«).

Скачать архив с примерами

Хорошо, и так, в этой статье мы рассмотрели работу методов DriveExists, FolderExists и FileExists объекта (FSO) FileSystemObject, которые позволяют проверить наличие файла, папки или диска.

Оцените статью
Технологии программирования и ведение блога
Добавить комментарий