FileSystemObject
Объект FileSystemObject обеспечивает доступ к файловой системе Windows.
Сценарий может создать только один экземпляр данного объекта.
FileSystemObject (fso) объектная модель содержит следующие объекты и коллекции:
Объект/Коллекция | Описание |
---|---|
FileSystemObject | Главный объект. Содержит методы и свойства, которые позволяют создавать, удалять, получить информацию о программе, и получать информацию о дисках, папках и файлах. |
Drive | Объект. Содержит методы и свойства, которые позволяют собирать информацию о дисках, подключенном к системе. |
Drives | Коллекция. Приведен список устройств, подключенных к системе физически или логически и их свойств. Коллекция включает в себя все диски, независимо от типа. |
File | Объект. Содержит методы и свойства, которые позволяют создавать, удалять, или перемещать файл. Также позволяет запросить у системы имя файла, путь, и различные другие свойства. |
Files | Коллекция. Предоставляет список всех файлов, содержащихся в папке. |
Folder | Объект. Содержит методы и свойства, которые позволяют создавать, удалять, или перемещать папки. Также позволяет запросить у системы для имена папок, пути и различные другие свойства. |
Folders | Коллекция. Предоставляет список всех подпапок в папке. |
TextStream | Объект. Позволяет читать и записывать текстовые файлы. |
Объект FileSystemObject.
В объектной модели FileSystemObject имеется некоторая избыточность. Так, скопировать файл, например, можно методом CopyFile объекта FileSystemObject, или методом Copy объекта File. Результат будет идентичным.
FileSystemObject. Создание объекта
Не будет лишним еще раз напомнить, что сценарий может создать только один экземпляр данного объекта.
Dim fso
Set fso = CreateObject("Scripting.FileSystemObject")
или
var fso;
fso = new ActiveXObject("Scripting.FileSystemObject");
Объект FileSystemObject. Свойство.
Свойство Drives
Свойства | Описание |
---|---|
Drives |
Возвращаемое значение: Объект-коллекция "Drives". Только чтение. Пример:
Set FSO = CreateObject("Scripting.FileSystemObject")
Set Drives = FSO.Drives
MsgBox "Всего дисков - " & Drives.Count
Другой пример:
// JScript
var x;
var fso = new ActiveXObject("Scripting.FileSystemObject");
var fc = new Enumerator(fso.Drives);
for (fc.moveFirst(); !fc.atEnd(); fc.moveNext())
{
x = fc.item();
s='Drive '+x.DriveLetter+': ';
if (x.DriveType == 0) s += "неизвестное устройство ";
if (x.DriveType == 1) s += "устройство со сменным носителем ";
if (x.DriveType == 2) s += "жёсткий диск " ;
if (x.DriveType == 3) s += "сетевой диск ";
if (x.DriveType == 4) s += "CD-ROM ";
if (x.DriveType == 5) s += "RAM-диск ";
if (x.IsReady)
{
namedisk=(x.DriveType == 3)?x.ShareName:x.VolumeName;
s += " Name=" +((namedisk.length > 0 )? namedisk : "[NO NAME] ");
s +=" FileSystem="+x.FileSystem;
s +=" FreeSpace="+Math.floor(x.FreeSpace/1024) +"КБ";
} else s +=" [disk not ready]";
WScript.Echo(s);
}
|
Объект FileSystemObject. Методы
Методы и их описание |
---|
BuildPath |
Синтаксис: BuildPath(Path,Name) Назначение: добавляет к заданному пути новое имя. Если необходимо, вставляется "\". Параметры: Path - строка, путь. Name - строка, имя файла. Аргумент - объект FileSystemObject Пример:
function GetBuildPath(path)
{
var fso, newpath;
fso = new ActiveXObject("Scripting.FileSystemObject");
newpath = fso.BuildPath(path, "New Folder");
return(newpath);
}
|
CopyFile |
CopyFile( Source , Destination, Overwrite) Назначение: копирует один или несколько файлов. Параметры: Source - строка, путь к источнику копирования (что копировать). В последнем компоненте параметра можно использовать групповые символы "*" и "?". Destination - строка, путь назначения (куда копировать). Overwrite - необязательный, булево (число). Перезаписывать существующие файлы, или нет. По умолчанию - True (перезаписывать). Если файл, который нужно перезаписать, имеет атрибут read-only, возникнет ошибка (независимо от установки этого параметра). Аргумент- объект FileSystemObject Пример:
fso = new ActiveXObject("Scripting.FileSystemObject");
fso.CopyFile ("c:\\mydocuments\\letters\\*.doc", "c:\\tempfolder\\")
|
CopyFolder |
Синтаксис: CopyFolder( Source, Destination, Overwrite) Назначение: рекурсивно копирует каталог. Параметры: Source - строка, путь к источнику копирования (что копировать). В последнем компоненте параметра можно использовать групповые символы "*" и "?". Destination - строка, путь назначения (куда копировать). Overwrite - необязательный, булево (число). Перезаписывать существующие файлы, или нет. По умолчанию - True (перезаписывать). Если файл, который нужно перезаписать, имеет атрибут read-only, возникнет ошибка (независимо от установки этого параметра). Описание: процесс копирования прерывается после первой возникшей ошибки Пример:
fso = new ActiveXObject("Scripting.FileSystemObject");
fso.CopyFolder ("c:\\mydocuments\\letters\\*", "c:\\tempfolder\\")
|
Count |
Возвращает количество элементов коллекции или словаря. Только чтение. Пример:
function CountDemo()
{
var a, d, i, s; // Create some variables.
d = new ActiveXObject("Scripting.Dictionary");
d.Add ("a", "Athens"); // Add some keys and items.
d.Add ("b", "Belgrade");
d.Add ("c", "Cairo");
a = (new VBArray(d.Keys())); // Get the keys.
s = "";
for (i = 0; i < d.Count; i++) //Iterate the dictionary.
{
s += a.getItem(i) + " - " + d(a.getItem(i));
}
return(s); // Return the results.
}
|
CreateFolder |
CreateFolder( Foldername) Назначение: создаёт каталог с указанным именем. Параметры: Foldername - строка, путь к каталогу. Если такой каталог уже существует, произойдёт ошибка. Пример:
var fso = new ActiveXObject("Scripting.FileSystemObject");
var a = fso.CreateFolder("c:\\new folder");
|
CreateTextFile |
Синтаксис: CreateTextFile(Filename,Overwrite,Unicode) Назначение: создаёт новый текстовый файл и возвращает объект "TextStream", указывающий на него. Параметры: Filename - строка, путь к файлу. Overwrite> - необязательный, булево (число). Перезаписывать файл, если он существует (True), или нет (False). По умолчанию - False. Если указано False и файл существует - произойдёт ошибка. Unicode - необязательный, булево (число). Файл в формате Unicode (True), или ASCII (False). По умолчанию - False. Пример:
var fso = new ActiveXObject("Scripting.FileSystemObject");
var a = fso.CreateTextFile("c:\\testfile.txt", true);
a.WriteLine("This is a test.");
a.Close();
|
Delete |
Синтаксис: Delete(Force) Назначение: удаляет каталог со всем содержимым. Параметры: Force - необязательный, булево (число). Удалять каталог, если он имеет атрибут "только для чтения" (True), или нет (False). Пример:
var fso, f;
fso = new ActiveXObject("Scripting.FileSystemObject");
f = fso.CreateTextFile("c:\\testfile.txt", true);
f.WriteLine("This is a test.");
f.Close();
f = fso.GetFile("c:\\testfile.txt");
f.Delete();
|
DeleteFile |
Синтаксис: DeleteFile(Filespec,Force>) Назначение: удаляет указанный файл. Параметры: Filespec - строка, путь к файлу. В последнем компоненте параметра можно использовать групповые символы "*" и "?". Force - необязательный, булево (число). Определяет, удалять или нет файлы с атрибутом read-only. По умолчанию - False (не удалять). Пример:
function DeleteFile(filespec)
{
var fso;
fso = new ActiveXObject("Scripting.FileSystemObject");
fso.DeleteFile(filespec);
}
|
DeleteFolder |
Синтаксис: DeleteFolder(Folderspec,Force) Назначение: удаляет указанную папку. Параметры: Folderspec - строка, путь к папке. В последнем компоненте параметра можно использовать групповые символы "*" и "?". Force - необязательный, булево (число). Определяет, удалять или нет файлы с атрибутом read-only. По умолчанию - False (не удалять). Пример:
function DeleteFolder(folderspec)
{
var fso;
fso = new ActiveXObject("Scripting.FileSystemObject");
fso.DeleteFolder(folderspec);
}
|
DriveExists |
Синтаксис: DriveExists(Drivespec) Назначение: возвращает True, если указанный диск существует, и False в противном случае. Параметры: Drivespec - строка, путь. Пример:
function ReportDriveStatus(drv)
{
var fso, s = "";
fso = new ActiveXObject("Scripting.FileSystemObject");
if (fso.DriveExists(drv))
s += "Drive " + drv + " exists.";
else
s += "Drive " + drv + " doesn't exist.";
return(s);
}
|
FileExists |
Синтаксис: FileExists(Filespec) Назначение: возвращает True, если указанный файл существует, и False в противном случае. Параметры: Filespec - строка, путь. Пример:
function ReportFileStatus(filespec)
{
var fso, s = filespec;
fso = new ActiveXObject("Scripting.FileSystemObject");
if (fso.FileExists(filespec))
s += " exists.";
else
s += " doesn't exist.";
return(s);
}
|
FolderExists |
Синтаксис: FolderExists(Folderspec) Назначение: возвращает True, если указанный каталог существует, и False в противном случае. Параметры: Folderspec - строка, путь. Пример:
function ReportFolderStatus(fldr)
{
var fso, s = fldr;
fso = new ActiveXObject("Scripting.FileSystemObject");
if (fso.FolderExists(fldr))
s += " exists.";
else
s += " doesn't exist.";
return(s);
}
|
GetAbsolutePathName |
Синтаксис: GetAbsolutePathName(Pathspec) Назначение: возвращает полный путь для заданного относительного пути (из текущего каталога). Параметры: Pathspec - строка, относительный путь. Пример:
function ShowAbsolutePath(path)
{
var fso, s;
fso = new ActiveXObject("Scripting.FileSystemObject");
s = fso.GetAbsolutePathName(path);
return(s);
}
|
GetBaseName |
Синтаксис: GetBaseName(Path) Назначение: возвращает имя (без расширения) последнего компонента в заданном пути. Параметры: Path - строка, путь. Пример:
function ShowBaseName(filespec)
{
var fso, s;
fso = new ActiveXObject("Scripting.FileSystemObject");
s = fso.GetBaseName(filespec);
return(s);
}
|
GetDrive |
Синтаксис: GetDrive(Folderspec) Назначение: возвращает объект "Drive" по указанному имени или пути. Параметры: Folderspec - строка, имя диска или путь к корневому каталогу диска, возможно UNC-путь. Пример:
function ShowVolumeName(drvPath)
{
var fso, d, s ="";
fso = new ActiveXObject("Scripting.FileSystemObject");
d = fso.GetDrive(fso.GetDriveName(drvPath));
s = d.VolumeName ;
return(s);
}
|
GetDriveName |
Синтаксис: GetDriveName(Path) Назначение: возвращает имя диска в заданном пути. Параметры: Path - строка, путь. Пример:
function ShowVolumeName(drvPath)
{
var fso, d;
fso = new ActiveXObject("Scripting.FileSystemObject");
d = fso.GetDrive(fso.GetDriveName(drvPath));
return(d.VolumeName);
}
|
GetExtensionName |
Синтаксис: GetExtensionName(Path) Назначение: возвращает расширение последнего компонента в заданном пути. Параметры: Path - строка, путь. Пример:
function ShowExtensionName(filespec)
{
var fso, s;
fso = new ActiveXObject("Scripting.FileSystemObject");
s = fso.GetExtensionName(filespec);
return(s);
}
|
GetFile |
Синтаксис: GetFile(Filespec) Назначение: возвращает объект "File" по указанному пути. Параметры: Filespec - строка, путь. Описание: если файл не существует, произойдёт ошибка. Пример:
function ShowFileAccessInfo(filespec)
{
var fso, f, s;
fso = new ActiveXObject("Scripting.FileSystemObject");
f = fso.GetFile(filespec);
s = f.Path.toUpperCase() + "\n";
s += "Created: " + f.DateCreated + "\n";
s += "Last Accessed: " + f.DateLastAccessed + "\n";
s += "Last Modified: " + f.DateLastModified
return(s);
}
|
GetFileName |
Синтаксис: GetFileName(Path) Назначение: возвращает имя (с расширением) последнего компонента в заданном пути. Параметры: Path - строка, путь. Пример:
function ShowFileName(filespec)
{
var fso, s;
fso = new ActiveXObject("Scripting.FileSystemObject");
s = fso.GetFileName(filespec);
return(s);
}
|
GetFileVersion |
Синтаксис: GetFileVersion(Path) Назначение: возвращает номер версии исполняемого файла (строка). Параметры: Path - строка, путь к файлу. Описание: метод возвращает информацию, соответствующую вкладке "Версия" свойств файла в проводнике. Пример:
function ShowFileName(filespec){
var fso, s;
fso = new ActiveXObject("Scripting.FileSystemObject");
s = fso.GetFileVersion(filespec);
return(s);
}
|
GetFolder |
Если текущий элемент папки (объект "FolderItem") сам является папкой,
возвращается объект "Folder", соответствующий этой папке.
Пример:
function ShowFolderList(folderspec)
{
var fso, f, fc, s;
fso = new ActiveXObject("Scripting.FileSystemObject");
f = fso.GetFolder(folderspec);
fc = new Enumerator(f.SubFolders);
s = "";
for (; !fc.atEnd(); fc.moveNext())
{
s += fc.item();
s += "\n";
}
return(s);
}
|
GetParentFolderName |
Синтаксис: GetParentFolderName(Path) Назначение: возвращает путь к последнему компоненту в заданном пути (его каталог). Параметры: Path - строка, путь. Пример:
function ShowParentFolderName(filespec)
{
var fso, s;
fso = new ActiveXObject("Scripting.FileSystemObject");
s = fso.GetParentFolderName(filespec);
return(s);
}
|
GetSpecialFolder |
Синтаксис: GetSpecialFolder(Folderspec) Назначение: возвращает объект "Folder" для некоторых специальных папок Windows. Параметры: Folderspec - число, определяет специальную папку. Возможные значения: 0 - Каталог Windows. 1 - Системный каталог библиотек и драйверов. 2 - Каталог временных файлов, путь к которому хранится в переменной среды "TMP". Описание: если каталог не существует, произойдёт ошибка. Пример:
var fso, tempfile;
fso = new ActiveXObject("Scripting.FileSystemObject");
function CreateTempFile()
{
var tfolder, tfile, tname, fname, TemporaryFolder = 2;
tfolder = fso.GetSpecialFolder(TemporaryFolder);
tname = fso.GetTempName();
tfile = tfolder.CreateTextFile(tname);
return(tfile);
}
tempfile = CreateTempFile();
tempfile.writeline("Hello World");
tempfile.close();
|
GetTempName |
Синтаксис: GetTempName() Назначение: возвращает случайным образом сгенерированное имя файла, которое может быть использовано для создания временного файла. Параметры: нет. Пример:
var fso, tempfile;
fso = new ActiveXObject("Scripting.FileSystemObject");
function CreateTempFile()
{
var tfolder, tfile, tname, fname, TemporaryFolder = 2;
tfolder = fso.GetSpecialFolder(TemporaryFolder);
tname = fso.GetTempName();
tfile = tfolder.CreateTextFile(tname);
return(tfile);
}
tempfile = CreateTempFile();
tempfile.writeline("Hello World");
tempfile.close();
|
MoveFile |
Синтаксис: MoveFile(Source,Destination) Назначение: перемещает один или несколько файлов. Параметры: Source - строка, путь к источнику копирования (что копировать). В последнем компоненте параметра можно использовать групповые символы "*" и "?". Destination - строка, путь назначения (куда копировать). Описание: процесс перемещения прерывается после первой возникшей ошибки. Если перемещаемый файл уже существует или является папкой в Destination, возникнет ошибка. Пример:
function MoveFile2Desktop(filespec)
{
var fso;
fso = new ActiveXObject("Scripting.FileSystemObject");
fso.MoveFile(filespec, "c:\\windows\\desktop\\");
}
|
MoveFolder |
Синтаксис: MoveFolder(Source,Destination) Назначение: рекурсивно перемещает один или несколько каталогов. Параметры: Source - строка, путь к источнику копирования (что копировать). В последнем компоненте параметра можно использовать групповые символы "*" и "?". Destination - строка, путь назначения (куда копировать). Описание: процесс перемещения прерывается после первой возникшей ошибки. Если перемещаемый каталог уже существует или является файлом в Destination, возникнет ошибка. Пример:
function MoveFldr2Desktop(fldrspec)
{
var fso;
fso = new ActiveXObject("Scripting.FileSystemObject");
fso.MoveFolder(fldrspec, "c:\\windows\\desktop\\");
}
|
OpenAsTextStream |
Синтаксис: OpenAsTextStream(Iomode,Format) Назначение: Открывает текстовый файл и возвращает объект "TextStream", указывающий на него. Параметры: Iomode - необязательный, число. Возможные значения:
Пример:
Set FSO = CreateObject("Scripting.FileSystemObject")
Set File = FSO.GetFile("C:\boot.ini")
Set TextStream = File.OpenAsTextStream(1)
MsgBox TextStream.ReadAll()
TextStream.Close
|
OpenTextFile |
Синтаксис: OpenTextFile(Filename,Iomode,Create,Format) Назначение: открывает текстовый файл и возвращает объект "TextStream", указывающий на него. Параметры: Filename - строка, путь к файлу. Iomode - необязательный, число. Возможные значения
Format - необязательный, число. Возможные значения:
Пример:
var fs, a, ForAppending;
ForAppending = 8;
fs = new ActiveXObject("Scripting.FileSystemObject");
a = fs.OpenTextFile("c:\\testfile.txt", ForAppending, false);
...
a.Close();
|
Объект File. Свойства
Attributes |
---|
Возвращаемое значение: число, набор флагов атрибутов файла. Флаги:
Аргумент - объект FILE или FOLDER.
function ToggleArchiveBit(filespec)
{
var fso, f, r, s;
fso = new ActiveXObject("Scripting.FileSystemObject");
f = fso.GetFile(filespec)
if (f.attributes && 32)
{
f.attributes = f.attributes - 32;
s = "Archive bit is cleared.";
}
else
{
f.attributes = f.attributes + 32;
s = "Archive bit is set.";
}
return(s);
}
|
DateCreated |
Возвращаемое значение: Дата создания файла. Только чтение. Аргумент - объект FILE или FOLDER. Пример
function ShowFileInfo(filespec)
{
var fso, f, s;
fso = new ActiveXObject("Scripting.FileSystemObject");
f = fso.GetFile(filespec);
s = "Created: " + f.DateCreated;
return(s);
}
|
DateLastAccessed |
Возвращаемое значение: дата последнего доступа к файлу. Только чтение. Аргумент - объект FILE или FOLDER. Пример
function ShowFileLastAccessed(filespec)
{
var fso, f, s;
fso = new ActiveXObject("Scripting.FileSystemObject");
f = fso.GetFile(filespec);
s = filespec.toUpperCase() + "\n";
s += "Last Accessed: " + f.DateLastAccessed;
return(s);
}
|
DateLastModified |
Возвращаемое значение: дата последней модификации файла. Только чтение.. Аргумент - объект FILE или FOLDER. Пример
function ShowFileLastModified(filespec)
{
var fso, f, s;
fso = new ActiveXObject("Scripting.FileSystemObject");
f = fso.GetFile(filespec);
s = filespec.toUpperCase() + "\n";
s += "Last Modified: " + f.DateLastModified;
return(s);
}
|
Drive |
Возвращаемое значение: объект "Drive" диска, на котором находится файл. Только чтение. Аргумент - объект FILE или FOLDER. Пример
function ShowFileAccessInfo(filespec)
{
var fso, f, s;
fso = new ActiveXObject("Scripting.FileSystemObject");
f = fso.GetFile(filespec);
s = f.Name + " on Drive " + f.Drive;
return(s);
}
|
Name |
Возвращаемое значение: Имя файла. Чтение и запись. Аргумент - объект File или Folder . Пример:
function ShowFileAccessInfo(filespec)
{
var fso, f, s;
fso = new ActiveXObject("Scripting.FileSystemObject");
f = fso.GetFile(filespec);
s = f.Name + " on Drive " + f.Drive;
return(s);
}
|
ParentFolder |
Возвращаемое значение: объект "Folder" родительского каталога. Только чтение. Аргумент - объект FILE или FOLDER. Пример:
function ShowParentFolder(filespec)
{
var fso, f, s;
fso = new ActiveXObject("Scripting.FileSystemObject");
f = fso.GetFile(filespec);
s = f.Name + " in " + f.ParentFolder;
return(s);
}
|
ShortName |
Возвращаемое значение: короткое имя файла в формате 8.3. Только чтение. Аргумент: объект FILE или FOLDER. Пример:
function ShowShortName(filespec)
{
var fso, f, s;
fso = new ActiveXObject("Scripting.FileSystemObject");
f = fso.GetFile(filespec);
s = "The short name for " + f.Name + "is: " + f.ShortName;
return(s);
}
|
ShortPath |
Возвращаемое значение: короткий путь к файлу в формате 8.3. Только чтение. Аргумент: объект FILE или FOLDER. Пример:
function ShowShortPath(filespec)
{
var fso, f, s;
fso = new ActiveXObject("Scripting.FileSystemObject");
f = fso.GetFile(filespec);
s = "The short path for " + f.Name;
s += " is: " + f.ShortPath;
return(s);
}
|
Size |
Возвращаемое значение: размер файла в байтах. Только чтение. Аргумент: объект FILE или FOLDER. Пример:
function ShowFolderSize(filespec)
{
var fso, f, s;
fso = new ActiveXObject("Scripting.FileSystemObject");
f = fso.GetFolder(filespec);
s = f.Name + " uses " + f.size + " bytes.";
return(s);
}
|
Type |
Возвращаемое значение: тип файла. Только чтение. Например, для файлов с расширением TXT возвращаемое значение будет "Text Document". Аргумент: объект FILE или FOLDER. Пример:
function ShowFileType(filespec)
{
var fso, f, s;
fso = new ActiveXObject("Scripting.FileSystemObject");
if (fso.FolderExists(filespec))
f = fso.GetFolder(filespec);
else if (fso.FileExists(filespec))
f = fso.GetFile(filespec);
else
s = "File or Folder does not exist.";
s = f.Name + " is a " + f.Type;
return(s);
}
|
Объект File. Методы
Методы | Описание |
---|---|
Copy |
Синтаксис: Copy(Destination, Overwrite) Назначение: копирует файл в указанное место. Параметры: Destination - строка, путь (куда копировать). Overwrite - необязательный, булево (число). Заменять файл, если он существует (True), или нет (False) Пример
var fso, f;
fso = new ActiveXObject("Scripting.FileSystemObject");
f = fso.CreateTextFile("c:\\testfile.txt", true);
f.WriteLine("This is a test.");
f.Close();
f = fso.GetFile("c:\\testfile.txt");
f.Copy("c:\\windows\\desktop\\test2.txt");
|
Объект Folder
Создание объекта
Set FSO = CreateObject("Scripting.FileSystemObject")
Set Folder = FSO.GetFolder("C:\Program Files")
Объект Folder. Свойства
Attributes |
---|
Возвращаемое значение: число, набор флагов атрибутов каталога. Флаги:
Аргумент - объект FILE или FOLDER.
function ToggleArchiveBit(filespec)
{
var fso, f, r, s;
fso = new ActiveXObject("Scripting.FileSystemObject");
f = fso.GetFile(filespec)
if (f.attributes && 32)
{
f.attributes = f.attributes - 32;
s = "Archive bit is cleared.";
}
else
{
f.attributes = f.attributes + 32;
s = "Archive bit is set.";
}
return(s);
}
|
DateCreated |
Возвращаемое значение: Дата создания каталога. Только чтение. Аргумент - объект FILE или FOLDER. Пример
function ShowFolderInfo(folderspec)
{
var fso, folder, s;
fso = new ActiveXObject("Scripting.FileSystemObject");
folder = fso.GetFolder(folderspec);
s = folder.DateCreated;
return(s);
}
|
DateLastAccessed |
Возвращаемое значение :Дата последнего доступа к каталогу. Только чтение. Аргумент - объект FILE или FOLDER. Пример
function ShowFileLastAccessed(filespec)
{
var fso, f, s;
fso = new ActiveXObject("Scripting.FileSystemObject");
f = fso.GetFile(filespec);
s = filespec.toUpperCase() + "\n";
s += "Last Accessed: " + f.DateLastAccessed;
return(s);
}
|
DateLastModified |
Возвращаемое значение: Дата последней модификации каталога. Только чтение.. Аргумент - объект FILE или FOLDER. Пример
function ShowFileLastModified(filespec)
{
var fso, f, s;
fso = new ActiveXObject("Scripting.FileSystemObject");
f = fso.GetFile(filespec);
s = filespec.toUpperCase() + "\n";
s += "Last Modified: " + f.DateLastModified;
return(s);
}
|
Drive |
Возвращаемое значение: объект "Drive" диска, на котором находится папка. Только чтение. Аргумент - объект FILE или FOLDER. Пример
function ShowFileAccessInfo(filespec)
{
var fso, f, s;
fso = new ActiveXObject("Scripting.FileSystemObject");
f = fso.GetFile(filespec);
s = f.Name + " on Drive " + f.Drive;
return(s);
}
|
IsRootFolder |
Возвращаемое значение: Булево (число). Признак того, является ли каталог корневым. Только чтение. Аргумент - объект Folder. Пример:
function DisplayLevelDepth(pathspec)
{
var fso, f, n, s = "";
fso = new ActiveXObject("Scripting.FileSystemObject");
f = fso.GetFolder(pathspec);
n = 0;
if (f.IsRootFolder)
s = "The specified folder is the root folder."
else
{
do
{
f = f.ParentFolder;
n++;
}
while (!f.IsRootFolder)
s = "The specified folder is nested " + n + " levels deep."
}
return(s);
}
|
Name |
Возвращаемое значение: Имя каталога. Чтение и запись. Аргумент - объект File или Folder . Пример:
function ShowFileAccessInfo(filespec)
{
var fso, f, s;
fso = new ActiveXObject("Scripting.FileSystemObject");
f = fso.GetFile(filespec);
s = f.Name + " on Drive " + f.Drive;
return(s);
}
|
ParentFolder |
Возвращаемое значение: объект "Folder" родительского каталога. Только чтение. Аргумент - объект FILE или FOLDER. Пример:
function ShowParentFolder(filespec)
{
var fso, f, s;
fso = new ActiveXObject("Scripting.FileSystemObject");
f = fso.GetFile(filespec);
s = f.Name + " in " + f.ParentFolder;
return(s);
}
|
ShortName |
Возвращаемое значение: короткое имя каталога в формате 8.3. Только чтение. Аргумент: объект FILE или FOLDER. Пример:
function ShowShortName(filespec)
{
var fso, f, s;
fso = new ActiveXObject("Scripting.FileSystemObject");
f = fso.GetFile(filespec);
s = "The short name for " + f.Name + "is: " + f.ShortName;
return(s);
}
|
ShortPath |
Возвращаемое значение: короткий путь к каталогу в формате 8.3. Только чтение. Аргумент: объект FILE или FOLDER. Пример:
function ShowShortPath(filespec)
{
var fso, f, s;
fso = new ActiveXObject("Scripting.FileSystemObject");
f = fso.GetFile(filespec);
s = "The short path for " + f.Name;
s += " is: " + f.ShortPath;
return(s);
}
|
Size |
Возвращаемое значение: Размер всех файлов и подкаталогов, входящих в данный каталог, в байтах. Только чтение. Аргумент: объект FILE или FOLDER. Пример:
function ShowFolderSize(filespec)
{
var fso, f, s;
fso = new ActiveXObject("Scripting.FileSystemObject");
f = fso.GetFolder(filespec);
s = f.Name + " uses " + f.size + " bytes.";
return(s);
}
|
SubFolders |
Возвращает объект-коллекцию "Folders", содержащая все подкаталоги данного каталога,
включая скрытые и системные. Аргумент: объект FOLDER. Пример:
function ShowFolderList(folderspec)
{
var fso, f, fc, s;
fso = new ActiveXObject("Scripting.FileSystemObject");
f = fso.GetFolder(folderspec);
fc = new Enumerator(f.SubFolders);
s = "";
for (;!fc.atEnd(); fc.moveNext())
{
s += fc.item();
s += "\n";
}
return(s);
}
|
Type |
Возвращаемое значение: тип каталога. Только чтение. Аргумент: объект FILE или FOLDER. Пример:
function ShowFileType(filespec)
{
var fso, f, s;
fso = new ActiveXObject("Scripting.FileSystemObject");
if (fso.FolderExists(filespec))
f = fso.GetFolder(filespec);
else if (fso.FileExists(filespec))
f = fso.GetFile(filespec);
else
s = "File or Folder does not exist.";
s = f.Name + " is a " + f.Type;
return(s);
}
|
Объект Folder. Методы.
Copy |
---|
Синтаксис: Copy(Destination, Overwrite) Назначение: копирует каталог в указанное место. Параметры: Destination - строка, путь (куда копировать). Overwrite - необязательный, булево (число). Заменять каталог, если он существует (True), или нет (False) Пример
var fso, f;
fso = new ActiveXObject("Scripting.FileSystemObject");
f = fso.CreateTextFile("c:\\testfile.txt", true);
f.WriteLine("This is a test.");
f.Close();
f = fso.GetFile("c:\\testfile.txt");
f.Copy("c:\\windows\\desktop\\test2.txt");
|
CreateTextFile |
Синтаксис: CreateTextFile(Filename, Overwrite, Unicode) Назначение: создаёт новый текстовый файл и возвращает объект "TextStream", указывающий на него. Параметры: Filename - строка, имя файла. Overwrite - необязательный, булево (число). Перезаписывать файл, если он существует (True), или нет (False). По умолчанию - False. Если указано False и файл существует - произойдёт ошибка. Unicode - необязательный, булево (число). Файл в формате Unicode (True), или ASCII (False). По умолчанию - False. Пример
var fso = new ActiveXObject("Scripting.FileSystemObject");
var a = fso.CreateTextFile("c:\\testfile.txt", true);
a.WriteLine("This is a test.");
a.Close();
|
Delete |
Delete(Force) Назначение: удаляет каталог со всем содержимым. Параметры: Force - необязательный, булево (число). Удалять каталог, если он имеет атрибут "только для чтения" (True), или нет (False). Пример
var fso, f;
fso = new ActiveXObject("Scripting.FileSystemObject");
f = fso.CreateTextFile("c:\\testfile.txt", true);
f.WriteLine("This is a test.");
f.Close();
f = fso.GetFile("c:\\testfile.txt");
f.Delete();
|
Move |
Move(Destination) Назначение: перемещает каталог в указанное место. Параметры: Destination - строка, путь (куда перемещать). Пример
Set FSO = CreateObject("Scripting.FileSystemObject")
Set Folder = FSO.GetFolder("D:\Job\Site")
Folder.Move "D:\"
|
OpenAsTextStream |
Синтаксис: OpenAsTextStream(Iomode,Format) Назначение: Открывает текстовый файл и возвращает объект "TextStream", указывающий на него. Параметры: Iomode - необязательный, число. Возможные значения:
Пример
function TextStreamTest( )
{
var fso, f, ts, s;
var ForReading = 1, ForWriting = 2, ForAppending = 8;
var TristateUseDefault = -2, TristateTrue = -1, TristateFalse = 0;
fso = new ActiveXObject("Scripting.FileSystemObject");
fso.CreateTextFile( "test1.txt" ); // Create a file.
f = fso.GetFile("test1.txt");
ts = f.OpenAsTextStream(ForWriting, TristateUseDefault);
ts.Write( "Hello World" );
ts.Close( );
ts = f.OpenAsTextStream(ForReading, TristateUseDefault);
s = ts.ReadLine( );
ts.Close( );
return(s);
}
|
Объект Drive. Свойства
AvailableSpace |
---|
Возвращаемое значение: число - количество доступного для пользователя места на диске в байтах, только чтение. Аргумент - объект DRIVE. Пример
function ShowAvailableSpace(drvPath)
{
var fso, d, s;
fso = new ActiveXObject("Scripting.FileSystemObject");
d = fso.GetDrive(fso.GetDriveName(drvPath));
s = "Available Space: " + d.AvailableSpace/1024 + " Kbytes";
return(s);
}
|
DriveLetter |
Возвращает символ физического (логического) диска или сетевого ресурса. Только для чтения. Свойство DriveLetter возвращает строку нулевой длины (""), если указанный диск не ассоциируется с символом диска. Аргумент - объект Drive. Пример:
function ShowDriveLetter(drvPath)
{
var fso, d, s;
fso = new ActiveXObject("Scripting.FileSystemObject");
d = fso.GetDrive(fso.GetDriveName(drvPath));
s = "Drive " + d.DriveLetter.toUpperCase( ) + ": - ";
return(s);
}
|
DriveType |
Возвращаемое значение: число - определяет тип ресурса. Возможные значения:
Аргумент - объект Drive. Пример:
function ShowDriveType(drvpath)
{
var fso, d, s, t;
fso = new ActiveXObject("Scripting.FileSystemObject");
d = fso.GetDrive(drvpath);
switch (d.DriveType)
{
case 0: t = "Unknown"; break;
case 1: t = "Removable"; break;
case 2: t = "Fixed"; break;
case 3: t = "Network"; break;
case 4: t = "CD-ROM"; break;
case 5: t = "RAM Disk"; break;
}
s = "Drive " + d.DriveLetter + ": - " + t;
return(s);
}
|
FileSystem |
Возвращаемое значение: строка - тип файловой системы (FAT, NTFS или CDFS). Только чтение.
Аргумент - объект Drive. Пример:
function ShowFileSystemType(drvPath)
{
var fso,d, s;
fso = new ActiveXObject("Scripting.FileSystemObject");
d = fso.GetDrive(drvPath);
s = d.FileSystem;
return(s);
}
|
FreeSpace |
Возвращаемое значение: число - количество свободного места на диске в байтах. Только чтение Аргумент - объект Drive. Пример:
function ShowFreeSpace(drvPath)
{
var fso, d, s;
fso = new ActiveXObject("Scripting.FileSystemObject");
d = fso.GetDrive(fso.GetDriveName(drvPath));
s = "Drive " + drvPath.toUpperCase( ) + " - ";
s += d.VolumeName + "\n";
s += "Free Space: " + d.FreeSpace/1024 + " Kbytes";
return(s);
}
|
IsReady |
Возвращаемое значение: булево (число) - True, если устройство готово, иначе - False. Актуально для устройства со сменным носителем или CD-ROM. Только чтение Аргумент - объект Drive. Пример:
function ShowDriveReady(drvpath)
{
var fso, d, s;
fso = new ActiveXObject("Scripting.FileSystemObject")
d = fso.GetDrive(drvpath)
if (d.IsReady)
s = "Drive is Ready.";
else
s = "Drive is not Ready.";
return(s);
}
|
Path |
Возвращаемое значение: полный путь к файлу. Только чтение. Аргумент: объект FILE, FOLDER или Drive. Пример:
function ShowFilePath(filespec)
{
var fso, f, s;
fso = new ActiveXObject("Scripting.FileSystemObject");
f = fso.GetFile(filespec);
s = f.Path.toUpperCase();
return(s);
}
|
RootFolder |
Возвращаемое значение: объект "Folder", соответствующий корневому каталогу диска. Только чтение. Аргумент: объект Drive. Пример:
function GetRootFolder(drv)
{
var fso,d;
fso = new ActiveXObject("Scripting.FileSystemObject");
if (fso.DriveExists(drv))
{
d = fso.GetDrive(drv);
return(d.RootFolder);
}
else
return(false);
}
|
SerialNumber |
Возвращаемое значение: число - десятичный серийный номер диска. Только чтение. Аргумент: объект Drive. Пример:
function GetSerialNumber(drv)
{
var fso,d;
fso = new ActiveXObject("Scripting.FileSystemObject");
if (fso.DriveExists(drv))
{
d = fso.GetDrive(drv);
return(d.SerialNumber);
}
else
return(false);
}
WScript.Echo(GetSerialNumber("c:"));
|
ShareName |
Возвращаемое значение: строка - сетевое имя диска, если диск сетевой (иначе - пустая строка).
Только чтение. Аргумент: объект Drive. Пример:
function ShowDriveInfo(drvpath)
{
var fso, d, s;
fso = new ActiveXObject("Scripting.FileSystemObject");
d = fso.GetDrive(fso.GetDriveName(fso.GetAbsolutePathName(drvpath)));
s = "Drive " + d.DriveLetter + ": - " + d.ShareName;
return(s);
}
|
TotalSize |
Возвращаемое значение: число - общий объём диска в байтах. Только чтение. Аргумент: объект Drive. Пример:
function SpaceReport(drvPath)
{
var fso, d, s;
fso = new ActiveXObject("Scripting.FileSystemObject");
d = fso.GetDrive(fso.GetDriveName(drvPath));
s = "Drive " + drvPath + " - ";
s += d.VolumeName;
s += " Total Space: "+ d.TotalSize/1024 + " Kbytes ";
s += " Free Space: " + d.FreeSpace/1024 + " Kbytes";
return(s);
}
|
VolumeName |
Возвращаемое значение: строка - метка тома диска. Аргумент: объект Drive. Пример:
function ShowVolumeName(drvPath)
{
var fso, d, s;
fso = new ActiveXObject("Scripting.FileSystemObject");
d = fso.GetDrive(fso.GetDriveName(drvPath));
s = "Drive " + drvPath + " - " + d.VolumeName;
return(s);
}
|
Объект TextStream. Свойства.
AtEndOfLine |
---|
Возвращаемое значение: содержит True, если указатель достиг конца строки и False в противном случае.
Работает только если файл открыт для чтения. Только чтение.
Аргумент - имя TextStream объекта. Пример:
function GetALine(filespec)
{
var fso, a, s, ForReading;
ForReading = 1, s = "";
fso = new ActiveXObject("Scripting.FileSystemObject");
a = fso.OpenTextFile(filespec, ForReading, false);
while (!a.AtEndOfLine)
{
s += a.Read(1);
}
a.Close( );
return(s);
}
|
AtEndOfStream |
Возвращаемое значение: содержит True, если указатель достиг конца файла и False в противном случае. Работает только если файл открыт для чтения. Только чтение. Аргумент - имя TextStream объекта. Пример:
function GetALine(filespec)
{
var fso, f, s, ForReading;
ForReading = 1, s = "";
fso = new ActiveXObject("Scripting.FileSystemObject");
f = fso.OpenTextFile(filespec, ForReading, false);
while (!f.AtEndOfStream)
s += f.ReadLine( );
f.Close( );
return(s);
}
|
Column |
Возвращаемое значение: содержит номер колонки текущего символа файла. Только чтение. Аргумент - имя TextStream объекта. Пример
Set FSO = CreateObject("Scripting.FileSystemObject")
Set File = FSO.GetFile("C:\boot.ini")
Set TextStream = File.OpenAsTextStream(1)
Str = vbNullString
While Not TextStream.AtEndOfLine
Str = Str & TextStream.Column & ": " & TextStream.Read(1) & vbCrLf
Wend
TextStream.Close
MsgBox Str
|
Line |
Возвращаемое значение: содержит номер текущей строки файла. Только чтение Аргумент - объект TextStream. Пример:
function GetLine()
{
var fso, f, r
var ForReading = 1, ForWriting = 2;
fso = new ActiveXObject("Scripting.FileSystemObject")
f = fso.OpenTextFile("c:\\textfile.txt", ForWriting, true)
f.WriteLine("Hello world!");
f.WriteLine("JScript is fun");
f.Close();
f = fso.OpenTextFile("c:\\textfile.txt", ForReading);
r = f.ReadAll();
return(f.Line);
}
|
Объект TextStream. Методы
Close |
---|
Закрывает открытый TextStream файл Пример:
var fso;
fso = new ActiveXObject("Scripting.FileSystemObject");
a = fso.CreateTextFile("c:\\testfile.txt", true);
a.WriteLine("This is a test.");
a.Close();
|
Read |
Синтаксис: Read(Characters) Назначение: считывает из TextStream указанное количество символов и возвращает полученную строку. Параметры: Characters - число, количество символов, которое нужно считать. Пример:
function GetHeader()
{
var fso, f;
var ForReading = 1, ForWriting = 2;
fso = new ActiveXObject("Scripting.FileSystemObject");
f = fso.OpenTextFile("c:\\testfile.txt", ForWriting, true);
f.Write("Header");
f.Write("1234567890987654321");
f.Close();
f = fso.OpenTextFile("c:\\testfile.txt", ForReading);
return(f.Read(6));
}
|
ReadAll |
Синтаксис: ReadAll Назначение: считывает весь файл и возвращает полученную строку. Параметры: нет. Описание: для больших файлов использование этого метода потребует больших ресурсов памяти. Пример:
function GetEverything()
{
var fso, f;
var ForReading = 1, ForWriting = 2;
fso = new ActiveXObject("Scripting.FileSystemObject");
f = fso.OpenTextFile("c:\\testfile.txt", ForWriting, true);
f.Write("Header");
f.Write("1234567890987654321");
f.Close();
f = fso.OpenTextFile("c:\\testfile.txt", ForReading);
return(f.ReadAll());
}
|
ReadLine |
Синтаксис: Skip(Characters) Назначение: пропускает при чтении файла указанное количество символов. Параметры: Characters - число, количество символов, которые нужно пропустить. Пример:
Set FSO = CreateObject("Scripting.FileSystemObject")
Set File = FSO.GetFile("C:\boot.ini")
Set TextStream = File.OpenAsTextStream(1)
Str = vbNullString
While Not TextStream.AtEndOfStream
Str = Str & TextStream.ReadLine() & vbCrLf
Wend
MsgBox Str
TextStream.Close
|
Skip |
Синтаксис: Skip(Characters) Назначение: пропускает при чтении файла указанное количество символов. Параметры: Characters - число, количество символов, которые нужно пропустить. Пример:
function SkipDemo()
{
var fso, f, r;
var ForReading = 1, ForWriting = 2;
fso = new ActiveXObject("Scripting.FileSystemObject")
f = fso.OpenTextFile("c:\\testfile.txt", ForWriting, true);
f.WriteLine("Hello world!");
f.WriteLine("JScript is fun");
f.Close();
f = fso.OpenTextFile("c:\\testfile.txt", ForReading);
f.Skip(6);
r = f.ReadLine();
return(r);
}
|
SkipLine |
Назначение: Пропускает при чтении файла строку. Параметры: Нет. Пример:
function SkipLineDemo()
{
var fso, f, r
var ForReading = 1, ForWriting = 2;
fso = new ActiveXObject("Scripting.FileSystemObject")
f = fso.OpenTextFile("c:\\testfile.txt", ForWriting, true)
f.WriteLine("Hello world!");
f.WriteLine("JScript is fun");
f.Close();
f = fso.OpenTextFile("c:\\testfile.txt", ForReading);
f.SkipLine();
r = f.ReadLine();
return(r);
}
|
Write |
Синтаксис: Write(String) Назначение: записывает в файл указанную строку. Символы возврата каретки и новой строки в файл не записываются. Параметры: String - строка для записи в файл. Пример:
function WriteDemo()
{
var fso, f, r
var ForReading = 1, ForWriting = 2;
fso = new ActiveXObject("Scripting.FileSystemObject")
f = fso.OpenTextFile("c:\\testfile.txt", ForWriting, true)
f.Write("Hello world!");
f.Close();
f = fso.OpenTextFile("c:\\testfile.txt", ForReading);
r = f.ReadLine();
return(r);
}
|
WriteBlankLines |
Синтаксис: WriteBlankLines(Lines) Назначение: записывает в файл указанное количество пустых строк (символы возврата каретки и новой строки). Параметры: Lines - число, количество пустых строк, которое надо записать. Пример:
function WriteBlanksDemo()
{
var fso, f, r;
var ForReading = 1, ForWriting = 2;
fso = new ActiveXObject("Scripting.FileSystemObject");
f = fso.OpenTextFile("c:\\testfile.txt", ForWriting, true);
f.Write("Hello world!");
f.WriteBlankLines(2);
f.Write("JScript is fun!");
f.Close();
f = fso.OpenTextFile("c:\\testfile.txt", ForReading);
r = f.ReadAll();
return(r);
}
|
WriteLine |
Синтаксис: WriteLine(String) Назначение: записывает в файл указанную строку. В файл записываются символы возврата каретки и новой строки. Параметры: String - необязательный, строка для записи в файл. Если опущен, в файл записывается пустая строка. Пример:
function WriteBlanksDemo()
{
var fso, f, r;
var ForReading = 1, ForWriting = 2;
fso = new ActiveXObject("Scripting.FileSystemObject");
f = fso.OpenTextFile("c:\\testfile.txt", ForWriting, true);
f.Write("Hello world!");
f.WriteBlankLines(2);
f.Write("JScript is fun!");
f.Close();
f = fso.OpenTextFile("c:\\testfile.txt", ForReading);
r = f.ReadAll();
return(r);
}
|
Коллекция Folders.
Коллекция Folders имеет только стандартные свойства коллекций: Count и Item.Коллекция Folders. Методы.
Методы | Описание |
---|---|
Add |
Создает новый каталог в родительском каталоге коллекции Folders. Синтаксис: Add(folderName) folderName - обязательный - String- имя создаваемого каталога. Если каталог с именем 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");
}
|
Коллекция Files
Коллекция интерфейсных объектов класса File, обеспечивающих доступ ко всем файлам в данном каталоге.Коллекция Files имеет только стандартные свойства коллекций: Count и Item.
Коллекция Files не имеет методов.
Коллекция Drives
Коллекция, содержащая интерфейсные объекты всех дисков, доступных на машине. Только для чтения.Для того, чтобы диски для съемных носителей были включены в коллекцию Drives, необязательно, чтобы в них присутствовали носители.
Коллекция Drives имеет только стандартные свойства коллекций: Count и Item.
Коллекция Drives не имеет методов.
Пример работы с коллекцией Drives:
function ShowDriveList()
{
var fso, s, n, e, x;
fso = new ActiveXObject("Scripting.FileSystemObject");
e = new Enumerator(fso.Drives);
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";
}
return(s);
}
Одноименные свойства объектов Folder и File
Объекты Folder и File имеют ряд свойств, имена и смысл которых совпадают для обоих объектов.Cвойства | Описание |
---|---|
Attributes | Возвращает и устанавливает новые значения атрибутов файла или каталога. Часть атрибутов можно только читать. |
DateCreated | Возвращает дату и время создания указанного файла или каталога. Только для чтения. |
DateLastAccessed | Возвращает дату и время последнего доступа (на запись или на чтение) к указанному файлу или каталогу. Только для чтения. |
DateLastModified | Возвращает дату и время последнего изменения указанного файла или каталога. Только для чтения. |
Drive | Возвращает букву диска, на котором расположен указанный файл или каталог. Только для чтения. |
Name | Возвращает или изменяет имя указанного файла или каталога |
ParentFolder | Возвращает объект для доступа к родительскому каталогу указанного файла или каталога. Только для чтения. |
Path | Путь для указанного файла или каталога. Только для чтения. |
ShortName | Возвращает так называемое короткое имя объекта, которое требуется для совместимости с устаревшим соглашением. |
ShortPath | Возвращает так называемый короткий путь для объекта, который требуется для совместимости с устаревшим соглашением 8.3. Каждое звено короткого пути удовлетворяет соглашению 8.3. |
Size | Возвращает размер файла или суммарный объем (в байтах) всех файлов и подкаталогов указанного каталога. |
Type | Возвращает информацию о типе файла, ассоциированном с расширением имени файла. Для каталога возвращается строка "File Folder" |
Одноименные методы объектов Folder и File
Объекты Folder и File имеют методы, имена и смысл которых совпадают для обоих объектов.Методы | Описание |
---|---|
Copy | Копирует указанный файл или каталог из одного места в другое. |
Delete | Удаляет указанный файл или каталог. |
Move | Перемещает из одного места в другое или переименовывает указанный файл или каталог (со всеми подкаталогами). |
Для вопросов, обсуждений, замечаний, предложений и т. п. можете использовать раздел форума этого сайта (требуетс¤ регистраци¤).