У объекта FileSystemObject есть метод GetSpecialFolder, который позволяет получить список из трёх специальных папок Windows. Сам метод не является панацеей, так как специальных папок может быть намного больше. Для справки, специальные папки Windows – это каталоги, которые создаются самой операционной системой, например, папка с операционной системой Windows.
Давайте рассмотрим общий синтаксис метода GetSpecialFolder:
GetSpecialFolder(folderspace) – видим, что метод принимает только один параметр, параметр является числом и может принимать значения от 0 до 2:
- 0 – папка с операционной системой Windows.
- 1 – специальная папка System32.
- 2 – каталог, содержащий временные файлы.
Сам метод GetSpecialFolder возвращает объект Folder для заданного каталога, для получения пути используется свойство Path.
Хорошо, теперь настало время для написания примеров.
'************************************************** ' Объект FileSystemObjectметод GetSpecialFolder ' Получаем список специальных папок ' GetSpecialFolder.vbs '************************************************** Option Explicit dim FSO, list, i, Folder dim TempPath, TxtFile list ="Некоторые специальные папки Windows:" & vbCrLf & vbCrLf ' создаем ссылку на экземпляр объекта FileSystemObject set FSO=CreateObject ("Scripting.FileSystemObject") 'В цикле получаем список трех специальных папок For i=0 To 2 ' получаем ссылку на объект Folder Set Folder = FSO.GetSpecialFolder(i) list = list & Folder.Path & vbCrLf Next 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 " & TempPath End Sub |
Давайте проанализируем всё по-порядку. Сперва мы подключаем объект 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:\n\n"; // создаем ссылку на экземпляр объекта FileSystemObject FSO= 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 нельзя объявить собственную процедуру, поэтому мы прописали функцию.
Ну что же, в этой статье мы рассмотрели метод GetSpecialFolder объекта FileSystemObject, который позволяет получить список некоторых специальных папок Windows, подписывайтесь на обновление блога, что бы быть в курсе новых примеров и статей.