Объект FileSystemObject метод GetSpecialFolder — Специальные папки Windows

Объект FileSystemObject метод GetSpecialFolder — Специальные папки Windows Объектная модель Windows Script Host

У объекта FileSystemObject есть метод GetSpecialFolder, который позволяет получить список из трёх специальных папок Windows. Сам метод не является панацеей, так как специальных папок может быть намного больше. Для справки, специальные папки Windows – это каталоги, которые создаются самой операционной системой, например, папка с операционной системой Windows.

Давайте рассмотрим общий синтаксис метода GetSpecialFolder:

GetSpecialFolder(folderspace) – видим, что метод принимает только один параметр, параметр является числом и может принимать значения от 0 до 2:

  • 0 – папка с операционной системой Windows.
  • 1 – специальная папка System32.
  • 2 – каталог, содержащий временные файлы.

Сам метод GetSpecialFolder возвращает объект Folder для заданного каталога, для получения пути используется свойство Path.

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

'**************************************************' Объект FileSystemObjectметод GetSpecialFolder' Получаем список специальных папок' GetSpecialFolder.vbs'************************************************** OptionExplicit dim FSO, list, i, Folderdim TempPath, TxtFile list ="Некоторые специальные папки Windows:" & vbCrLf & vbCrLf ' создаем ссылку на экземпляр объекта FileSystemObjectset FSO=CreateObject ("Scripting.FileSystemObject"'В цикле получаем список трех специальных папокFor i=0 To 2     ' получаем ссылку на объект Folder     Set Folder = FSO.GetSpecialFolder(i)    list = list & Folder.Path & vbCrLfNext ShowInNotepad(list) 'Процедура создания временного файла с даннымиSub ShowInNotepad(StrToFile)    TempPath = CreateObject("WScript.Shell").ExpandEnvironmentStrings("%TEMP%") & "" & FSO.GetTempName    Set TxtFile = FSO.CreateTextFile(TempPath)    TxtFile.WriteLine(StrToFile)    TxtFile.Close    CreateObject("WScript.Shell").Run "wordpad.exe " & TempPathEndSub
Работа с папками в файловой системе Windows

Давайте проанализируем всё по-порядку. Сперва мы подключаем объект FileSystemObject — файловая система Windows, ссылка на него хранится в переменной FSO, далее идёт цикл for (детально, «Урок 6 по VBScript: Циклы for…next и for each…next«), в цикле переменная i принимает три значения, от 0 до 2, если указать больший диапазон, то в сценарии возникнет ошибка. В теле цикла мы формируем ссылку на объект Folder, используя метод GetSpecialFolder, в качестве параметра мы передаем переменную i. В переменную list записывается путь к специальной папке.

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

ShowInNotepad – это процедура, в качестве параметра мы передаём ей значение переменной list. В самой переменной происходит создание временной папки, имя ей будет назначаться с помощью метода GetTempName (более детально, читайте статью «Объект FileSystemObject метод DeleteFile и GetTempName«). Далее мы записываем значение переменной list во временный файл, далее – происходит его открытие с помощью метода Run (более детально, читайте статью «Объект WScript.Shell — метод Run«), в качестве программы редакторы мы прописали программу wordpad.exe, при желании вы можете прописать программу notepad.exe.

//**************************************************// Объект FileSystemObject метод GetSpecialFolder// Получаем список специальных папок// GetSpecialFolder.js//************************************************** var FSO, list, i, Folder;var TempPath, TxtFile; list ="Некоторые специальные папки Windows:nn"; // создаем ссылку на экземпляр объекта FileSystemObjectFSO= WScript.CreateObject("Scripting.FileSystemObject"); //В цикле получаем список трех специальных папокfor(i=0; i<=2; i++){     // получаем ссылку на объект Folder     Folder = FSO.GetSpecialFolder(i);    list += Folder.Path+"n";} ShowInNotepad(list) //Процедура создания временного файла с даннымиfunction ShowInNotepad(StrToFile){    TempPath = WScript.CreateObject("WScript.Shell").ExpandEnvironmentStrings("%TEMP%")+"\"+ FSO.GetTempName();    TxtFile = FSO.CreateTextFile(TempPath);    TxtFile.WriteLine(StrToFile);    TxtFile.Close();    WScript.CreateObject("WScript.Shell").Run("wordpad.exe "+ TempPath);}

Тут, как и в предыдущем примере, логика работы сценария аналогична. Обратите внимание, тут мы использовали ESC-последовательности языка jscript, которые отвечают за перевод строки. Также, обратите внимание, тут в языке jscript нельзя объявить собственную процедуру, поэтому мы прописали функцию.

Обрабатываем специальные папки в Windows

Ну что же, в этой статье мы рассмотрели метод GetSpecialFolder объекта FileSystemObject, который позволяет получить список некоторых специальных папок Windows, подписывайтесь на обновление блога, что бы быть в курсе новых примеров и статей.

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