И так, в этой статье мы рассмотрим три метода объекта FileSystemObject, GetDrive, GetFolder и GetFile. Данные методы являются своеобразным звеном, так как позволяют получить доступ к другим объектам.
Давайте рассмотрим подробно их синтаксис:
GetDrive(drivespec) – возвращает объект Drive для диска, заданного параметром drivespec (например, «С», «С:», «C:»).
GetFolder(folderspec) – вернёт объект Folder, для каталога заданного параметром folderspec. Параметр должен содержать полный путь к каталогу, если такого каталога не существует, возникнет ошибка.
GetFile(filespec) – вернёт объект File, для файла заданного параметром filespec. Параметр должен содержать полный путь к файлу, если такого файла не существует, возникнет ошибка.
Хорошо, теперь давайте напишем два примера, на языке vbscript и jscript.
'*********************************************************************** ' методы объекта FileSystemObject GetDrive, GetFolder и GetFile ' Получение доступа к диску, папке и файлу ' GetDrive_Folder_File.vbs '*********************************************************************** Option Explicit dim FSO, WshShell, list dim get_drive, get_folder, get_file dim my_drive, my_folder, my_file 'Создаем объект FileSystemObject set FSO=WScript.CreateObject("Scripting.FileSystemObject") ' Создаем объект WScript.Shell set WshShell = WScript.CreateObject("WScript.Shell") ' путь к диску C get_drive = "C:" ' путь к текущему каталогу get_folder = WshShell.CurrentDirectory ' путь к текущему сценарию get_file = WScript.ScriptFullName set my_drive = FSO.GetDrive(get_drive) set my_folder = FSO.GetFolder(get_folder) set my_file = FSO.GetFile(get_file) list = "" list = list & "Файловая система диска: " & my_drive.FileSystem & vbCrLf list = list & "Короткое имя каталога: " & my_folder.ShortName & vbCrLf list = list & "Короткое имя файла: " & my_file.ShortName & vbCrLf ' выводим значение переменной list WScript.Echo list |
Давайте для начала рассмотрим назначение переменных:
dim FSO, WshShell, list – тут FSO хранит ссылку на объект FileSystemObject, который позволит получить доступ к методам FSO GetFolder, FSO GetFile и FSO GetDrive. Переменная WshShell хранит ссылку к объекту WScript.Shell, она нам нужна для получения пути к текущему каталогу с помощью свойства CurrentDirectory (смотри статью «Объект WScript.Shell — метод ExpandEnvironmentStrings и свойство CurrentDirectory«). Переменная list будет содержать список значений.
dim get_drive, get_folder, get_file – тут мы объявили три переменные, которые содержать путь к диску, путь к текущему каталогу и полный путь к текущему сценарию, включая его имя.
dim my_drive, my_folder, my_file – каждая из данных переменных является ссылкой на объект, соответственно, объект Drive, Folder и File.
Далее происходит присвоение значений переменной list, как я уже сказал, она хранит список, а именно: файловую систему диска, короткое имя папки и файла.
А вот аналогичный пример, но уже на языке jscript:
//*********************************************************************** // методы объекта FileSystemObject GetDrive, GetFolder и GetFile // Получение доступа к диску, папке и файлу // GetDrive_Folder_File.js //*********************************************************************** var FSO, WshShell, list=""; var get_drive, get_folder, get_file; var my_drive, my_folder, my_file; //Создаем объект FileSystemObject FSO=WScript.CreateObject("Scripting.FileSystemObject"); // Создаем объект WScript.Shell WshShell = WScript.CreateObject("WScript.Shell"); // путь к диску C get_drive = "C:"; // путь к текущему каталогу get_folder = WshShell.CurrentDirectory; // путь к текущему сценарию get_file = WScript.ScriptFullName; my_drive = FSO.GetDrive(get_drive); my_folder = FSO.GetFolder(get_folder); my_file = FSO.GetFile(get_file); list = list + "Файловая система диска: " + my_drive.FileSystem + "\n"; list = list + "Короткое имя каталога: " + my_folder.ShortName + "\n"; list = list + "Короткое имя файла: " + my_file.ShortName + "\n"; // выводим значение переменной list WScript.Echo (list); |
Стоит сделать следующий акцент, получение доступа к объектам через методы GetDrive, GetFolder и GetFile нужно в том случае, когда приходится обработать несколько элементов, например, получить список всех файлов или каталогов в текущей папке, получить атрибуты файла и много другое.
Хорошо, на этом пока всё, мы рассмотрели работу методов объекта FileSystemObject (FSO) GetDrive, fso GetFolder и fso GetFile, пишите свои вопросы в комментариях.