Методы CopyFile и CopyFolder
Для копирования нескольких файлов или каталогов в последнем компоненте параметра source
можно указывать групповые символы "?" и "*"; в параметре destination
групповые символы недопустимы. Например, следующий пример является корректным кодом:
FSO = WScript.CreateObject("Scripting.FileSystemObject");
FSO.CopyFile("с:\\mydocuments\\letters\\*.doc", "с:\\tempfolder\\");
А так писать нельзя:
FSO = WScript.CreateObject("Scripting.FileSystemObject");
FSO.CopyFile("с:\\mydocuments\\*\\R1???97.xls", "с:\\tempfolder");
Необязательный параметр overwrite
является логической переменной, определяющей, следует ли заменять уже существующий файл/каталог с именем destination
( overwrite=true
) или нет ( overwrite =false
).
При использовании методов CopyFile
и CopyFolder
процесс копирования прерывается после первой возникшей ошибки (как и в команде COPY
операционной системы).
Параметр overwrite
, используемый в методе, имеет значение в том случае, когда создаваемый файл уже существует. Если overwrite
равно true
, то такой файл перепишется (старое содержимое будет утеряно), если же в качестве overwrite
указано false
, то файл переписываться не будет. Если этот параметр вообще не указан, то существующий файл также не будет переписан.
Параметр unicode
является логическим значением, указывающим, в каком формате (ASCII или Unicode) следует создавать файл. Если unicode
равно true
, то файл создается в формате Unicode, если же unicode
равно false
или этот параметр вообще не указан, то файл создается в режиме ASCII.
Для дальнейшей работы с созданным файлом, т.е. для записи или чтения информации, нужно использовать методы объекта TextStream
. Соответствующий пример сценария приведен в листинге 5.1.
Листинг 5.1. Создание текстового файла и запись в него строки
/*******************************************************************/
/* Имя: CreateFile.js */
/* Язык: JScript */
/* Описание: Создание текстового файла и запись в него строки */
/*******************************************************************/
var FSO,f; //Объявляем переменные
//Создаем объект FileSystemObject
FSO = WScript.CreateObject("Scripting.FileSystemObject");
//Создаем на диске C: текстовый файл TestFile.txt
f = FSO.CreateTextFile("C:\\TestFile.txt", true);
//Записываем строку в файл
f.WriteLine("Привет!");
//Закрываем файл
f.Close();
/************* Конец *********************************************/
Методы DeleteFile и DeleteFolder
Параметры filespec
или folderspec
, используемые в методах, могут содержать групповые символы "?" и "*" в последнем компоненте пути для удаления сразу нескольких файлов/каталогов.
Если параметр force
равен false
или не указан вовсе, то с помощью методов DeleteFile
или DeleteFolder
будет нельзя удалить файл/каталог с атрибутом "только для чтения" (read-only). Установка для force
значения true
позволит сразу удалять такие файлы/каталоги.
Замечание
При использовании метода DeleteFolder
неважно, является ли удаляемый каталог пустым или нет — он удалится в любом случае
Если заданный для удаления файл/каталог не будет найден, то возникнет ошибка.
Для дисководов со съемными носителями метод DriveExists
вернет true
даже в том случае, если носитель физически отсутствует. Для того чтобы определить готовность дисковода, нужно использовать свойство IsReady
соответствующего объекта Drive
.
В качестве примера использования метода DriveExists
приведем функцию ReportDriveStatus
, которая возвращает информацию о наличии диска, передаваемого в эту функцию в качестве параметра (листинг 5.2).
Листинг 5.2. Функция ReportDriveStatus
function ReportDriveStatus(drv) {
var FSO, s ="" //Объявляем переменные
//Создаем объект FileSystemObject
FSO = WScript.CreateObject("Scripting.FileSystemObject");
//Проверяем наличие диска drv
if (FSO.DriveExists(drv)) s += "Диск " + drv + " существует.";
else s += "Диск " + drv + " не существует.";
return(s);
}
Функция ReportDriveStatus
будет возвращать информацию о наличии диска, передаваемого в эту функцию в качестве параметра.
Метод GetAbsolutePathName
Для иллюстрации работы этого метода предположим, что текущим каталогом является C:\MyDocuments\Reports. В табл. 5.3 приведены значения, возвращаемые методом GetAbsolutePathName
, при различных значениях параметра pathspec
.
Читать дальше