Объект 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
'**************************************************
 
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
Работа с папками в файловой системе 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:\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 нельзя объявить собственную процедуру, поэтому мы прописали функцию.

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

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

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