Объект FileSystemObject метод GetDrive, GetFolder и GetFile

Объект FileSystemObject метод GetDrive, GetFolder и GetFile Объектная модель Windows Script Host

И так, в этой статье мы рассмотрим три метода объекта 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, пишите свои вопросы в комментариях.

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