Объект FileSystemObject

Объект FileSystemObject является основным объектом, обеспечивающим доступ к файловой системе компьютера; его методы используются для создания остальных объектов (Drives, Drive, Folders, Folder, Files, File и TextStream).

Для создания внутри сценария экземпляра объекта FileSystemObject можно воспользоваться методом CreateObject объекта WScript:

var FSO = WScript.CreateObject("Scripting.FileSystemObject")

Также можно использовать объект ActiveXObject языка JScript (с помощью этого объекта можно работать с файловой системой из сценариев, находящихся внутри HTML-страниц):

var FSO = new ActiveXObject("Scripting.FileSystemObject")

Объект FileSystemObject имеет единственное свойство Drives, в котором хранится коллекция, содержащая объекты Drive для всех доступных дисков компьютера.

Методы объекта FileSystemObject

BuildPathДобавляет к заданному пути новое имя.
CopyFileКопирует один или несколько файлов из одного места в другое.
CopyFolderКопирует каталог со всеми подкаталогами из одного места в другое.
CreateFolderСоздает новый каталог.
CreateTextFileСоздает новый текстовый файл и возвращает указывающий на этот файл объект TextStream
DeleteFileУдаляет файл.
DeleteFolderУдаляет каталог вместе со всем его содержимым.
DriveExistsВозвращает true, если заданное устройство существует и false в противном случае.
FileExistsВозвращает true, если файл существует и false в противном случае.
FolderExistsВозвращает true, если каталог существует и false в противном случае.
GetAbsolutePathNameВозвращает полный путь для заданного относительного пути (из текущего каталога).
GetBaseNameВозвращает базовое имя (без расширения) для последнего компонента в пути.
GetDriveВозвращает объект Drive, соответствующий диску.
GetDriveNameВозвращает строку, содержащую имя диска в заданном пути.
GetExtensionNameВозвращает строку, содержащую расширение для последнего компонента в пути.
GetFileВозвращает объект File, соответствующий файлу, заданному параметром.
GetFileNameВозвращает имя файла, заданного полным путем к нему.
GetFileVersionВозвращает номер версии исполняемого файла (строка).
GetFolderВозвращает объект Folder, соответствующий каталогу, заданному параметром<.
GetParentFolderNameВозвращает строку, содержащую имя родительского каталога для последнего компонента в заданном пути.
GetSpecialFolderВозвращает объект Folder для некоторых специальных папок Windows.
GetStandardStreamВозвращает объект TextStream, ассоциированный с потоком "StdIn", "StdOut" или "StdErr".
GetTempNameВозвращает случайным образом сгенерированное имя файла или каталога, которое может быть использовано для операций, требующих наличия временного файла или каталога.
MoveFileПеремещает один или несколько файлов из одного места в другое.
MoveFolderПеремещает один или несколько каталогов из одного места в другое.
OpenTextFileОткрывает заданный текстовый файл и возвращает объект TextStream для работы с этим файлом

Drives

Синтаксис

// Свойство. Только чтение.

FSO.Drives

Возвращаемое значение

Объект-коллекция Drives.

Заметки

Коллекция Drives содержит интерфейсные объекты всех дисков, доступных на машине.

Для того, чтобы диски для съемных носителей были включены в коллекцию Drives, необязательно, чтобы в них присутствовали носители.

Коллекция Drives имеет только стандартные свойства коллекций: Count и Item.

Коллекция Drives не имеет методов.

Пример

var fso = WScript.CreateObject("Scripting.FileSystemObject");
var e = new Enumerator(fso.Drives);
var x, n, s = ""; 
for (; !e.atEnd(); e.moveNext()) 
  { x = e.item(); 
    s = s + x.DriveLetter; 
    s += " - "; 
    if (x.DriveType == 3) 
      n = x.ShareName; 
    else if (x.IsReady) 
            n = x.VolumeName; 
    else n = "[Drive not ready]"; 
    s += n + "\n"; 
  }
WScript.Echo ( s );

BuildPath()

Метод BuildPath() добавляет к заданному пути новое имя. Если необходимо, вставляется "\".

Синтаксис

FSO.BuildPath( Path, Name )

Параметры

Path
Строка, путь.
Name
Строка, имя файла.

Пример

var FSO = WScript.CreateObject("Scripting.FileSystemObject");
var Path = FSO.BuildPath("C:\\Program Files", "New Folder")
WScript.Echo ( Path );
Path = FSO.BuildPath("C:\\Program Files\\", "New Folder")
WScript.Echo ( Path );

// Результат:
// C:\Program Files\New Folder

CopyFile()

Метод CopyFile() копирует один или несколько файлов.

Синтаксис

FSO.CopyFile( Source, Destination, Overwrite )

Параметры

Source
Строка, путь к источнику копирования (что копировать). В последнем компоненте параметра можно использовать групповые символы "*" и "?".
Destination
Строка, путь назначения (куда копировать).
Overwrite
Необязательный, булево (число). Перезаписывать существующие файлы, или нет. По умолчанию - true (перезаписывать). Если файл, который нужно перезаписать, имеет атрибут read-only, возникнет ошибка (независимо от установки этого параметра).

Пример

var FSO = WScript.CreateObject("Scripting.FileSystemObject");
FSO.CopyFile ("C:\\*.bat", "D:\\", false);

CopyFolder()

Метод CopyFolder() рекурсивно копирует каталог.

Синтаксис

FSO.CopyFolder( Source, Destination, Overwrite )

Параметры

Source
Строка, путь к источнику копирования (что копировать). В последнем компоненте параметра можно использовать групповые символы "*" и "?".
Destination
Строка, путь назначения (куда копировать).
Overwrite
Необязательный, булево (число). Перезаписывать существующие файлы, или нет. По умолчанию - true (перезаписывать). Если файл, который нужно перезаписать, имеет атрибут read-only, возникнет ошибка (независимо от установки этого параметра).

Комментарии

Процесс копирования прерывается после первой возникшей ошибки.

Пример

var FSO = WScript.CreateObject("Scripting.FileSystemObject");
FSO.CopyFolder ("C:\\NewFolder\\*", "C:\\TEMP\\", true);

CreateFolder()

Метод CreateFolder() создаёт каталог с указанным именем.

Синтаксис

FSO.CreateFolder( Foldername )

Параметры

Foldername
Строка, путь к каталогу. Если такой каталог уже существует, произойдёт ошибка.

Пример

var FSO = WScript.CreateObject("Scripting.FileSystemObject");
FSO.CreateFolder ("C:\\New Folder");

CreateTextFile()

Метод CreateTextFile() создаёт новый текстовый файл и возвращает объект TextStream, указывающий на него.

Синтаксис

FSO.CreateTextFile( Filename, Overwrite, Unicode )

Параметры

Filename
Строка, путь к файлу.
Overwrite
Необязательный, булево (число). Перезаписывать файл, если он существует (true), или нет (false). По умолчанию - false. Если указано false и файл существует - произойдёт ошибка.
Unicode
Необязательный, булево (число). Файл в формате Unicode (true), или ASCII (false). По умолчанию - false.

Пример

var FSO = WScript.CreateObject("Scripting.FileSystemObject");
var TextStream = FSO.CreateTextFile("C:\\Test.txt");

DeleteFile()

Метод DeleteFile() удаляет указанный файл.

Синтаксис

FSO.DeleteFile( Filespec, Force )

Параметры

Filespec
Строка, путь к файлу. В последнем компоненте параметра можно использовать групповые символы "*" и "?".
Force
Необязательный, булево (число). Определяет, удалять или нет файлы с атрибутом read-only. По умолчанию - false (не удалять).

Пример

var FSO = WScript.CreateObject("Scripting.FileSystemObject");
FSO.DeleteFile ( "F:\\tmp\\*", true );

DeleteFolder()

Метод DeleteFolder() удаляет указанную папку.

Синтаксис

FSO.DeleteFolder( Folderspec, Force )

Параметры

Folderspec
Строка, путь к папке. В последнем компоненте параметра можно использовать групповые символы "*" и "?".
Force
Необязательный, булево (число). Определяет, удалять или нет файлы с атрибутом read-only. По умолчанию - false (не удалять).

Пример

var FSO = WScript.CreateObject("Scripting.FileSystemObject");
FSO.DeleteFolder ( "D:\\TEMP\\*", false );

DriveExists()

Метод DriveExists() возвращает true, если указанный диск сущесвтвует, и false в противном случае.

Синтаксис

FSO.DriveExists( Drivespec )

Параметры

Drivespec
Строка, путь.

Пример

var FSO = WScript.CreateObject("Scripting.FileSystemObject");
Disk = "A:"
WScript.Echo ( "Диск " + Disk + " существует = " + FSO.DriveExists(Disk) );
Disk = "Q:"
WScript.Echo ( "Диск " + Disk + " существует = " + FSO.DriveExists(Disk) );

FileExists()

Метод FileExists() возвращает true, если указанный файл существует, и false в противном случае.

Синтаксис

FSO.FileExists( Filespec )

Параметры

Filespec
Строка, путь.

Пример

var FSO = WScript.CreateObject("Scripting.FileSystemObject");
File = "C:\\Program Files\\1Cv77\\BIN\\1cv7s.exe";
WScript.Echo ( "Файл " + File + " существует = " + FSO.FileExists(File) );

Folders (коллекция)

Описание

Folders - коллекция всех объектов Folder, содержащихся внутри определенного объекта Folder.

Коллекция Folders имеет только стандартные свойства коллекций (Count и Item) и метод Add, который создает новый каталог в родительском каталоге коллекции.

Синтаксис

Add(folderName)

Параметр

folderName
Имя создаваемого каталога. Если каталог с именем folderName уже существует в коллекции, то возникает ошибка.

Пример

function AddNewFolder(path,folderName) 
  { var fso, f, fc, nf; 
    fso = new ActiveXObject("Scripting.FileSystemObject"); 
    f = fso.GetFolder(path); 
    fc = f.SubFolders; 
    if (folderName != "" ) 
       nf = fc.Add(folderName); 
    else nf = fc.Add("New Folder"); 
  }

FolderExists()

Метод FolderExists() возвращает true, если указанный каталог сущесвтвует, и false в противном случае.

Синтаксис

FSO.FolderExists( Folderspec )

Параметры

Folderspec
Строка, путь.

Пример

var FSO = WScript.CreateObject("Scripting.FileSystemObject");
Folder = "C:\\Program Files"
WScript.Echo ( "Каталог " + Folder + " существует = " + FSO.FolderExists(Folder) );
Folder = "С:\\ProgramFiles"
WScript.Echo ( "Каталог " + Folder + " существует = " + FSO.FolderExists(Folder) );

GetAbsolutePathName()

Метод GetAbsolutePathName() возвращает полный путь для заданного относительного пути (из текущего каталога).

Синтаксис

FSO.GetAbsolutePathName( Pathspec )

Параметры

Pathspec
Строка, относительный путь.

Пример

var FSO = WScript.CreateObject("Scripting.FileSystemObject");
var Path = FSO.GetAbsolutePathName("..")
WScript.Echo ( Path );
Path = FSO.GetAbsolutePathName(".\\aaa\\bbb\\ccc.txt")
WScript.Echo ( Path );

GetBaseName()

Метод GetBaseName() возвращает имя (без расширения) последнего компонента в заданном пути.

Синтаксис

FSO.GetBaseName( Path )

Параметры

Path
Строка, путь.

Пример

var FSO = WScript.CreateObject("Scripting.FileSystemObject");
Name = FSO.GetBaseName("Q:\\aaa\\bred\\MySuperFile.txt");
WScript.Echo ( Name );
// Результат:
// MySuperFile

GetDrive()

Метод GetDrive() возвращает объект Drive по указанному имени или пути.

Синтаксис

FSO.GetDrive( Folderspec )

Параметры

Folderspec
Строка, имя диска или путь к корневому каталогу диска, возможно UNC-путь, т.е. параметр может быть буквой диска (c), буквой диска с двоеточием (c:), буквой диска с двоеточием и символом разделителем пути (c:\), или любым сетевым путем (\\computer2\share1).

Пример

var FSO = WScript.CreateObject("Scripting.FileSystemObject");
var Drive = FSO.GetDrive("C:");
WScript.Echo ( Drive.FileSystem );
var Drive = FSO.GetDrive("C:\\");
WScript.Echo ( Drive.FileSystem );

GetDriveName()

Метод GetDriveName() возвращает имя диска в заданном пути.

Синтаксис

FSO.GetDriveName( Path )

Параметры

Path
Строка, путь.

Пример

var FSO = WScript.CreateObject("Scripting.FileSystemObject");
Name = FSO.GetDriveName("X:\\aaa\\bred\\MySuperFile.txt")
WScript.Echo ( Name );

// Результат:
// X:

GetExtensionName()

Метод GetExtensionName() возвращает расширение последнего компонента в заданном пути.

Синтаксис

FSO.GetExtensionName( Path )

Параметры

Path
Строка, путь.

Пример

var FSO = WScript.CreateObject("Scripting.FileSystemObject");
Name = FSO.GetExtensionName("Q:\\aaa\\bred\\MySuperFile.txt")
WScript.Echo ( Name );
// Результат:
// txt

GetFile()

Метод GetFile() возвращает объект File по указанному пути.

Синтаксис

FSO.GetFile( Filespec )

Параметры

Filespec
Строка, путь.

Комментарии

Если файл не существует, произойдёт ошибка.

Пример

var FSO = WScript.CreateObject("Scripting.FileSystemObject");
var File = FSO.GetFile("C:\\autoexec.bat");
WScript.Echo ( File.Size );

GetFileName()

Метод GetFileName() возвращает имя (с расширением) последнего компонента в заданном пути.

Синтаксис

FSO.GetFileName( Path )

Параметры

Path
Строка, путь.

Пример

var FSO = WScript.CreateObject("Scripting.FileSystemObject");
var Name = FSO.GetFileName("Q:\\aaa\\bred\\MySuperFile.txt");
WScript.Echo ( Name );
// Результат:
// MySuperFile.txt

GetFileVersion()

Метод GetFileVersion() возвращает номер версии исполняемого файла (строка).

Синтаксис

FSO.GetFileVersion( Path )

Параметры

Path
Строка, путь к файлу.

Комментарии

Метод возвращает информацию, которую можно просмотреть на вкладке "Версия" палитры свойств файла в проводнике.

Пример

var FSO = WScript.CreateObject("Scripting.FileSystemObject");
WScript.Echo ( FSO.GetFileVersion("c:\\Program Files\\WinRAR\\WinRAR.exe" ) );

GetFolder()

Метод GetFolder() возвращает объект Folder по указанному пути.

Синтаксис

FSO.GetFolder( Folderspec )

Параметры

Folderspec
Строка, путь.

Комментарии

Если каталог не существует, произойдёт ошибка.

Пример

var FSO = WScript.CreateObject("Scripting.FileSystemObject");
var Folder = FSO.GetFolder("C:\\Program Files");
WScript.Echo ( Folder.ShortName );

// Результат:
// PROGRA~1

GetParentFolderName()

Метод GetParentFolderName() возвращает путь к последнему компоненту в заданном пути (его каталог).

Синтаксис

FSO.GetParentFolderName( Path )

Параметры

Path
Строка, путь.

Пример

var FSO = WScript.CreateObject("Scripting.FileSystemObject");
var Name = FSO.GetParentFolderName("Q:\\aaa\\bred\\MySuperFile.txt")
WScript.Echo ( Name );

// Результат:
// Q:\aaa\bred

GetSpecialFolder()

Метод GetSpecialFolder() возвращает объект Folder для некоторых специальных папок Windows.

Синтаксис

FSO.GetSpecialFolder( Folderspec )

Параметры

Folderspec
Число, определяет специальную папку. Возможные значения:
  • 0 - Каталог Windows.
  • 1 - Системный каталог библиотек и драйверов.
  • 2 - Каталог временных файлов, путь к которому хранится в переменной среды "TMP".

Комментарии

Если каталог не существует, произойдёт ошибка.

Пример

var FSO = WScript.CreateObject("Scripting.FileSystemObject");
for (var s='', i=0; i <= 2; i++)
  s += FSO.GetSpecialFolder(i).Path + '\n';

WScript.Echo ( s );

GetStandardStream()

Метод GetStandardStream() возвращает объект TextStream, ассоциированный с потоком "StdIn", "StdOut" или "StdErr".

Синтаксис

FSO.GetStandardStream( StandardStreamType, Unicode )

Параметры

StandardStreamType

Число, определяет поток. Возможные значения:
  • 0 - StdIn.
  • 1 - StdOut.
  • 2 - StdErr.
Unicode
Необязательный, булево (число). true - формат Unicode, false - ASCII. По умолчанию - false.

Комментарии

Метод применим при запуске административного скрипта в консоли с помощью CScript.exe.

Пример

var FSO = WScript.CreateObject("Scripting.FileSystemObject");
var stdout = fso.GetStandardStream(1);
stdout.WriteLine ("Hello, JavaScript.");

GetTempName()

Метод GetTempName() возвращает случайным образом сгенерированное имя файла, которое может быть использовано для создания временного файла.

Синтаксис

FSO.GetTempName()

Параметры

Нет

Пример

var FSO = WScript.CreateObject("Scripting.FileSystemObject");
WScript.Echo ( FSO.GetTempName() );

MoveFile()

Метод MoveFile() перемещает один или несколько файлов.

Синтаксис

FSO.MoveFile( Source, Destination )

Параметры

Source
Строка, путь к источнику копирования (что копировать). В последнем компоненте параметра можно использовать групповые символы "*" и "?".
Destination
Строка, путь назначения (куда копировать).

Комментарии

Процесс перемещения прерывается после первой возникшей ошибки. Если перемещаемый файл уже существует или является папкой в Destination, возникнет ошибка.

Пример

var FSO = WScript.CreateObject("Scripting.FileSystemObject");
FSO.MoveFile ("C:\\*.txt", "A:\\");

MoveFolder()

Метод MoveFolder() рекурсивно перемещает один или несколько каталогов.

Синтаксис

FSO.MoveFolder( Source, Destination )

Параметры

Source
Строка, путь к источнику копирования (что копировать). В последнем компоненте параметра можно использовать групповые символы "*" и "?".
Destination
Строка, путь назначения (куда копировать).

Комментарии

Процесс перемещения прерывается после первой возникшей ошибки. Если перемещаемый каталог уже существует или является файлом в Destination, возникнет ошибка.

Пример

var FSO = WScript.CreateObject("Scripting.FileSystemObject");
FSO.MoveFolder ("C:\\New Folde*", "C:\\TEMP\\");

OpenTextFile()

Метод OpenTextFile() открывает текстовый файл и возвращает объект TextStream, указывающий на него.

Синтаксис

FSO.OpenTextFile( Filename, Iomode, Create, Format )

Параметры

Filename
Строка, путь к файлу.
Iomode
Необязательный, число. Возможные значения:
  • 1 - Открыть файл только для чтения.
  • 2 - Открыть файл для записи. Если файл уже существовал, его содержимое теряется.
  • 8 - Открыть файл для добавления. Если файл уже существовал, информация будет дописываться в конец файла.
Create
Необязательный, булево (число). Создавать файл, если он не существует (true), или нет (false). По умолчанию - false.
Format
Необязательный, число. Возможные значения:
  • -2 - Открыть файл в формате, используемом системой по умолчанию.
  • -1 - Открыть файл в формате Unicode.
  •  0 - Открыть файл в формате ASCII (по умолчанию).

Пример

var FSO = WScript.CreateObject("Scripting.FileSystemObject");
var TextStream = FSO.OpenTextFile("C:\\Test.txt", 2, true, -1);