Документация JavaScript
| Документация DHTML | Документация Smarty | SVG/VML Графика и JavaScript
| Документация bash |
Глава 3.14. Исполняющая система JScript
В этой и следующей главах приведено описание исполняющей системы Microsoft JScript, которая существенно расширяет возможности обозревателей Internet Explorer. Все описанные ниже объекты реализованы как управляющие элементы ActiveX, интегрированные в библиотеку типов исполняющей системы JScript.
3.14.1. Словари: объект Dictionary
Объект Dictionary предназначен для создания словарей. Словарь в JScript аналогичен ассоциативному массиву языка PERL и представляет собой набор пар (ключ, значение). Значения могут быть данными любого типа. При этом каждое значение ассоциируется с уникальным ключом, который используется для его поиска и выборки из словаря. Обычно в качестве ключа используются числа или текстовые строки, хотя ключ может быть чем угодно, кроме массива. Конструктор объекта Dictionary имеет вид:
new ActiveXObject("Scripting.Dictionary")
Следующий пример демонстрирует использование словаря:
var d = new ActiveXObject("Scripting.Dictionary"); // Создаем словарь d d.Add("а", "Архангельск"); // Добавляем несколько пар d.Add("б", "Баку"); d.Add("в", "Воронеж"); var a = (new VBArray(d.Keys())).toArray(); // Извлекаем массив ключей var s = ""; for (var i = 0; i < d.Count; i++) // Просматриваем словарь s += a[i] + " - " + d(a[i]) + "<br>"; document.write(s); // Выводим на экран результат
Последний оператор этого примера выведет на экран обозревателя текст:
а - Архангельск
б - Баку
в - Воронеж
Свойство | Описание |
---|---|
CompareMode | Способ сравнения ключей. |
Count | Количество элементов в словаре. |
Item | Значение, соответствующее ключу. |
Key | Изменяет значение ключа. |
Метод | Описание |
---|---|
Add | Добавляет в словарь пару (ключ, значение). |
Exists | Проверяет наличие заданного ключа в словаре. |
Items | Возвращает массив значений словаря. |
Keys | Возвращает массив ключей словаря. |
Remove | Удаляет из словаря пару (ключ, значение). |
RemoveAll | Очищает словарь. |
Свойство CompareMode
Синтаксис: объект.CompareMode Атрибуты: { DontEnum, DontDelete }
Свойство CompareMode позволяет задать способ сравнения текстовых ключей в словаре объект. Оно может принимать следующие значения:
0 | Двоичное сравнение. Задает сравнение строк на основе порядка сортировки, определяемого внутренним двоичным представлением символов. В Windows порядок сортировки определяется кодовой страницей символов, например: A < B < E < Z < a < b < e < z < Б < Л < Ш < б < л < ш. |
1 | Текстовое сравнение. Задает сравнение строк без учета регистра символов на основе национальной настройки операционной системы. Тем же символам, что и выше, в этом случае соответствует следующий порядок: (A=a) < (B=b) < (E=e) < (Z=z) < (Б=б) < (Л=л) < (Ш=ш). |
2 | Сравнение на основе национальной настройки базы данных. В обозревателях не используется. |
Значения, большие двух, могут использоваться для сравнения ключей в определенной кодировке символов и в этом случае они должны быть равны идентификатору кодировки (LCID).
Значение этого свойства может быть считано в любое время, но задается оно до занесения в словарь любых значений. Попытка задать способ сравнения ключей для непустого словаря приводит к ошибке исполнения. Пример:
var d = new ActiveXObject("Scripting.Dictionary"); d.CompareMode = 0; // различать строчные и прописные буквы в ключах d.Add ("а", "ааа"); d.Add ("А", "ААА"); document.write(d.Item("а"));
Свойство Count
Синтаксис: объект.Count Атрибуты: { DontEnum, DontDelete, ReadOnly }
Значением свойства Count является размер объекта, т. е. количество содержащихся в нем пар (ключ, значение). Пример использования этого свойства приведен выше.
Свойство Item
Синтаксис: объект.Item(ключ) Атрибуты: { DontEnum, DontDelete }
Значением свойства Item является значение словаря объект, соответствующее ключу. Точнее говоря, при чтении этого свойства:
- Если заданный ключ в словаре отсутствует, то создается новая пара с данным ключом и неопределенным значением и возвращается значение undefined.
- Если заданный ключ в словаре есть, то возвращается ассоциированное с ним значение.
При задании нового значения этого свойства:
- Если заданный ключ в словаре отсутствует, то создается новая пара с данным ключом и заданным значением.
- Если заданный ключ в словаре есть, то ассоциированное с ним значение заменяется на заданное.
Например, следующий сценарий
var d = new ActiveXObject("Scripting.Dictionary"); d.Add("а", "Архангельск"); d.Add("б", "Баку"); d.Add("в", "Воронеж"); d.Item("г") = "Гомель"; document.write(d.Item("г"));
выведет на экран обозревателя текст Гомель.
Свойство Key
Синтаксис: объект.Key(ключ) = новый_ключ Атрибуты: { DontEnum, DontDelete }
Свойство Key используется для изменения ключа в словаре объект. При этом
- Если заданный ключ в словаре отсутствует, то создается новая пара с ключом новый_ключ и неопределенным значением.
- Если заданный ключ в словаре есть, то он заменяется на новый_ключ.
Чтение этого свойства невозможно. Например, следующий сценарий
var d = new ActiveXObject("Scripting.Dictionary"); d.Add("а", "Архангельск"); d.Add("б", "Баку"); d.Add("в", "Воронеж"); d.Key("а") = "ар"; document.write(d.Item("ар"));
выведет на экран обозревателя текст Архангельск.
Метод Add
Синтаксис: объект.Add(ключ, значение) Аргументы: ключ ключ создаваемой пары значение соответствующее значение
Метод Add добавляет в словарь объект новую пару (ключ, значение). Если данный ключ уже имеется в словаре, то возникает ошибка. Примеры использования этого метода приведены выше.
Метод Exists
Синтаксис: объект.Exists(ключ) Аргументы: ключ выражение, задающее искомый ключ Результат: логическое значение
Метод Exists возвращает true, если ключ имеется в словаре объект и false в противном случае. Пример:
var d = new ActiveXObject("Scripting.Dictionary"); d.Add("а", "Архангельск"); var x = d.Exists("а"); // x равно true
Метод Items
Синтаксис: объект.Items() Результат: массив VBScript
Метод Items возвращает массив значений словаря объект. Возвращаемый массив имеет формат VBScript, поэтому для его использования в JScript следует пользоваться приемом, указанным в следующем примере:
var d = new ActiveXObject("Scripting.Dictionary"); // Создаем словарь d d.Add("а", "Архангельск"); // Добавляем несколько пар d.Add("б", "Баку"); d.Add("в", "Воронеж"); var a = (new VBArray(d.Items())).toArray(); // Извлекаем массив значений var s = ""; for (var i in a) // Просматриваем словарь s += a[i] + " "; document.write(s); // Выводим на экран результат
Последний оператор этого примера выведет на экран обозревателя текст Архангельск Баку Воронеж.
Метод Keys
Синтаксис: объект.Keys() Результат: массив VBScript
Метод Keys возвращает массив ключей словаря объект. Возвращаемый массив имеет формат VBScript, поэтому для его использования в JScript следует пользоваться приемом, указанным в следующем примере:
var d = new ActiveXObject("Scripting.Dictionary"); // Создаем словарь d d.Add("а", "Архангельск"); // Добавляем несколько пар d.Add("б", "Баку"); d.Add("в", "Воронеж"); var a = (new VBArray(d.Keys())).toArray(); // Извлекаем массив ключей var s = ""; for (var i in a) // Просматриваем словарь s += a[i] + " "; document.write(s); // Выводим на экран результат
Последний оператор этого примера выведет на экран обозревателя текст а б в.
Метод Remove
Синтаксис: объект.Remove(ключ) Аргументы: ключ искомый ключ
Метод Remove удаляет из словаря объект пару с заданным (ключом. Если данного ключа нет в словаре, то возникает ошибка. Пример:
var d = new ActiveXObject("Scripting.Dictionary"); // Создаем словарь d d.Add("а", "Архангельск"); // Добавляем несколько пар d.Add("б", "Баку"); d.Add("в", "Воронеж"); d.Remove("б"); // Удаляем вторую пару
Метод RemoveAll
Синтаксис: объект.RemoveAll()
Метод RemoveAll очищает словарь объект, т. е. удаляет из него все пары.
3.14.2. Файловая система: объект FileSystemObject
Объект FileSystemObject обеспечивает доступ к файловой системе Windows. Его конструктор имеет вид:
new ActiveXObject("Scripting.FileSystemObject")
Отметим, что сценарий может создать только один экземпляр данного объекта, сколько бы раз в нем не вызывался данный конструктор.
Следующий пример демонстрирует использование объекта FileSystemObject для создания текстового файла и вывода в него строки:
var fso = new ActiveXObject("Scripting.FileSystemObject"); // Создаем объект var file = fso.CreateTextFile("c:\\test.txt", true); // Создаем файл file.WriteLine("This is a test."); // Выводим в него строку file.Close(); // Закрываем файл
Примечание. Поскольку FileSystemObject обеспечивает нам любые манипуляции с файлами и папками компьютера, то по умолчанию установки безопасности Internet Explorer запрещают его использование на стороне клиента. Поэтому для использования большинства из описанных ниже методов вы должны разрешить исполнение в Internet Explorer небезопасных элементов ActiveX, что серьезно угрожает целостности вашей системы.
Свойство | Описание |
---|---|
Drives | Коллекция дисков локального компьютера. |
Метод | Описание |
---|---|
BuildPath | Создает имя пути из двух компонентов. |
CopyFile | Копирует один или несколько файлов. |
CopyFolder | Полностью копирует папку. |
CreateFolder | Создает новую папку. |
CreateTextFile | Создает текстовый файл. |
DeleteFile | Удаляет файл. |
DeleteFolder | Полностью удаляет папку. |
DriveExists | Проверяет, существует ли данный диск. |
FileExists | Проверяет, существует ли данный файл. |
FolderExists | Проверяет, существует ли данная папка. |
GetAbsolutePathName | Возвращает полное название пути. |
GetBaseName | Извлекает имя файла из пути. |
GetDrive | Возвращает заданный объект Drive. |
GetDriveName | Извлекает имя диска из пути. |
GetExtensionName | Извлекает расширение файла из пути. |
GetFile | Возвращает заданный объект File. |
GetFileName | Извлекает спецификацию файла из пути. |
GetFolder | Возвращает заданный объект Folder. |
GetParentFolderName | Возвращает имя отцовской папки. |
GetSpecialFolder | Возвращает объект Folder для системной папки. |
GetTempName | Создает имя временного файла. |
MoveFile | Переносит файл. |
MoveFolder | Полностью перемещает папку. |
OpenTextFile | Открывает текстовый файл. |
Свойство Drives
Синтаксис: fso.Drives Атрибуты: { DontEnum, DontDelete, ReadOnly }
Свойство Drives возвращает коллекцию объектов Drive, соответствующих всем физическим и логическим дискам локального компьютера. Для просмотра этой коллекции следует пользоваться объектом Enumerator.
Пример использования свойства Drives был приведен ранее.
Метод BuildPath
Синтаксис: fso.BuildPath(путь, имя) Аргументы: путь, имя строковые выражения Результат: строковое значение
Метод BuildPath добавляет к пути заданное имя и возвращает результирующую строку. При необходимости перед именем добавляется разделитель "\". Например, следующий сценарий
var fso = new ActiveXObject("Scripting.FileSystemObject"); var newpath = fso.BuildPath("c:\\My Documents", "New Folder"); document.write(newpath);
выведет на экран обозревателя текст c:\My Documents\New Folder.
Метод CopyFile
Синтаксис: fso.CopyFile(источник, цель [, флаг]?) Аргументы: источник, цель строковые выражения флаг логическое значение
Метод CopyFile копирует один или несколько файлов. При этом строка источник задает спецификацию исходного файла и может содержать подстановочные знаки "*" и "?" в последнем компоненте, строка цель задает имя результирующего файла или папки, а необязательный аргумент флаг указывает, следует ли заменять при копировании существующие файлы (по умолчанию он равен true, т. е. существующие файлы заменяются).
Если источник содержит подстановочные знаки или цель заканчивается символом "\", то цель считается именем папки, в которую копируются исходные файлы. В остальных случаях цель считается именем результирующего файла. Сам процесс копирования происходит так:
- если нет файлов, соответствующих спецификации источника, то метод завершается ошибкой;
- если файла с именем цель нет, то производится копирование файла;
- если файл цель существует и флаг равен false, то метод завершается ошибкой, иначе делается попытка копирования источника поверх цели; при этом независимо от значения флага, попытка замены существующего файла с атрибутом "только для чтения" завершается ошибкой;
- если цель является каталогом, то метод завершается ошибкой.
Пример: следующий сценарий копирует все файлы из корневой папки дискеты A в папку d:\Temp.
var fso = new ActiveXObject("Scripting.FileSystemObject"); fso.CopyFile("a:\\*.*", "d:\\Temp");
Метод CopyFolder
Синтаксис: fso.CopyFolder(источник, цель [, флаг]?) Аргументы: источник, цель строковые выражения флаг логическое выражение
Метод CopyFolder копирует одну папку в другую, включая подпапки. При этом строка источник задает спецификацию исходной папки и может содержать подстановочные знаки "*" и "?" в последнем компоненте, строка цель задает имя результирующей папки, а необязательный аргумент флаг указывает, следует ли заменять при копировании существующие файлы (по умолчанию он равен true, т. е. существующие файлы заменяются).
Если источник содержит подстановочные знаки или цель заканчивается символом "\", то цель считается именем существующей папки, в которую копируются исходные файлы. В остальных случаях цель считается именем новой папки, которую необходимо создать. Сам процесс копирования происходит так:
- если нет файлов, соответствующих спецификации источника, то метод завершается ошибкой;
- если папки с именем цель нет, то она создается и производится копирование файлов;
- если цель задает имя существующего файла, то метод завершается ошибкой;
- если файлы исходной папки уже есть в цели и флаг равен false, то метод завершается ошибкой, иначе делается попытка копирования источника поверх цели; при этом независимо от значения флага, попытка замены существующего файла с атрибутом "только для чтения" завершается ошибкой.
Пример: следующий сценарий копирует все файлы и папки из корневой папки дискеты A в папку d:\Temp.
var fso = new ActiveXObject("Scripting.FileSystemObject"); fso.CopyFolder("a:\\", "d:\\Temp");
Метод CreateFolder
Синтаксис: fso.CreateFolder(имя) Аргументы: имя строковое выражение
Метод CreateFolder создает папку с заданным именем. Если такая папка уже есть, то метод завершается ошибкой.
Пример: следующий сценарий создает папку C:\New Folder.
var fso = new ActiveXObject("Scripting.FileSystemObject"); fso.CreateFolder("c:\\New Folder");
Метод CreateTextFile
Синтаксис: fso.CreateTextFile(имя [[, флаг]?, unicode]?) Аргументы: имя строковое выражение флаг, unicode логические выражения Результат: новый объект TextStream
Метод CreateTextFile создает текстовый файл с заданным именем. При этом необязательный аргумент флаг указывает, следует ли удалять существующий файл с этим именем (по умолчанию он равен true, т. е. существующие файлы заменяются новыми), а необязательный аргумент unicode задает кодировку символов файла (true означает кодировку Unicode, а false кодировку ANSI; по умолчанию создается файл в кодировке ANSI). Пример:
var fso = new ActiveXObject("Scripting.FileSystemObject"); var ts = fso.CreateTextFile("c:\\file.txt", false); ts.WriteLine("Тестовая строка."); ts.Close();
Метод DeleteFile
Синтаксис: fso.DeleteFile(имя [, флаг]?) Аргументы: имя строковое выражение флаг логическое выражение
Метод DeleteFile удаляет файл с заданным именем. При этом необязательный аргумент флаг указывает, следует ли удалять файл, имеющий атрибут "только для чтения" (по умолчанию он равен false, т. е. такие файлы не удаляются). Если файла с данным именем нет, то метод завершается ошибкой. Пример:
var fso = new ActiveXObject("Scripting.FileSystemObject"); fso.DeleteFile("c:\\file.txt", true);
Метод DeleteFolder
Синтаксис: fso.DeleteFolder(имя [, флаг]?) Аргументы: имя строковое выражение флаг логическое выражение
Метод DeleteFolder удаляет папку с заданным именем. При этом необязательный аргумент флаг указывает, следует ли удалять папку, имеющий атрибут "только для чтения" (по умолчанию он равен false, т. е. такие папки не удаляются). Если папки с данным именем нет, то метод завершается ошибкой. Пример:
var fso = new ActiveXObject("Scripting.FileSystemObject"); fso.DeleteFile("c:\\file.txt", true);
Метод DriveExists
Синтаксис: fso.DriveExists(имя) Аргументы: имя строковое выражение Результат: логическое выражение
Метод DriveExists проверяет, существует ли диск с заданным именем на локальном компьютере, и возвращает соответствующий результат. Строка имя может состоять из буквы, задающей имя диска ("c"), из буквы с двоеточием ("c:"), из буквы с двоеточием и разделителем пути ("c:\\") или содержать спецификацию сетевого диска ("\\computer3\\public1").
Примечание. Этот метод не проверяет наличие диска в дисководе со сменными дисками, а только существование самого дисковода. Для проверки наличия диска в дисководе пользуйтесь методом Drive.IsReady. Пример:
var fso = new ActiveXObject("Scripting.FileSystemObject"); var b = fso.DriveExists("e"); // true, если есть диск E
Метод FileExists
Синтаксис: fso.FileExists(имя) Аргументы: имя строковое выражение Результат: логическое выражение
Метод FileExists проверяет, существует ли файл с заданным именем на локальном компьютере, и возвращает соответствующий результат. Строка имя должна содержать спецификацию файла.
var fso = new ActiveXObject("Scripting.FileSystemObject"); var b = fso.FileExists("c:\\test.htm"); // true, если данный файл существует
Метод FolderExists
Синтаксис: fso.FolderExists(имя) Аргументы: имя строковое выражение Результат: логическое выражение
Метод FolderExists проверяет, существует ли папка с заданным именем на локальном компьютере, и возвращает соответствующий результат. Строка имя должна содержать спецификацию папки.
var fso = new ActiveXObject("Scripting.FileSystemObject"); var b = fso.FolderExists("c:\\My Pictures"); // true, если данная папка существует
Метод GetAbsolutePathName
Синтаксис: fso.GetAbsolutePathName(путь) Аргументы: путь строковое выражение Результат: строковое значение
Метод GetAbsolutePathName преобразует заданный путь в полное имя пути и возвращает результирующую строку. Пусть, например, текущим каталогом является c:\My Documents\Letters. Следующая таблица иллюстрирует результаты применения метода GetAbsolutePathName к различным входным аргументам.
имя | GetAbsolutePathName(имя) |
---|---|
"" | "c:\\My Documents\\Letters" |
".." | "c:\\My Documents" |
"\\" | "c:\\" |
"oct2000\\*.doc" | "c:\\My Documents\\Letters\\oct2000\\*.doc" |
"file.txt" | "c:\\My Documents\\Letters\\file.txt" |
Метод GetBaseName
Синтаксис: fso.GetBaseName(путь) Аргументы: путь строковое выражение Результат: строковое значение
Метод GetBaseName извлекает из заданного пути его последний компонент: имя каталога или имя файла. В последнем случае имя файла возвращается без расширения. Примеры:
var fso = new ActiveXObject("Scripting.FileSystemObject"); var s1 = fso.GetBaseName("c:\\My Documents\\Letters"); // s1 равно "Letters" var s2 = fso.GetBaseName("c:\\My Documents\\Letters\\d1.doc"); // s2 равно "d1"
Метод GetDrive
Синтаксис: fso.GetDrive(имя) Аргументы: имя строковое выражение Результат: объект Drive
Метод GetDrive возвращает объект Drive, соответствующий диску с заданным именем. Строка имя может состоять из буквы, задающей имя диска ("c"), из буквы с двоеточием ("c:"), из буквы с двоеточием и разделителем пути ("c:\\") или содержать спецификацию сетевого диска ("\\computer3\\public1"). Если диска с данным именем не существует, метод завершается ошибкой. Пример: следующая функция извлекает имя диска из аргумента путь и возвращает объем свободного пространства на этом диске в мегабайтах.
function DriveSpace(path) { var fso = new ActiveXObject("Scripting.FileSystemObject"); var d = fso.GetDrive(fso.GetDriveName(fso.GetAbsolutePathName(path))); return d.FreeSpace/1024/1024; }
Метод GetDriveName
Синтаксис: fso.GetDriveName(путь) Аргументы: путь строковое выражение Результат: строковое значение
Метод GetDriveName извлекает из заданного пути имя диска. Если его там нет, то возвращается пустая строка. Пример:
var fso = new ActiveXObject("Scripting.FileSystemObject"); var d = fso.GetDriveName(fso.GetAbsolutePathName(path));
Метод GetExtensionName
Синтаксис: fso.GetExtensionName(путь) Аргументы: путь строковое выражение Результат: строковое значение
Метод GetExtensionName извлекает из заданного пути расширение его последнего компонента, т. е. расширение файла, если это имя файла, и пустую строку, если это имя каталога. Примеры:
var fso = new ActiveXObject("Scripting.FileSystemObject"); var s1 = fso.GetExtensionName("c:\\My Documents\\Letters"); // s1 равно "" var s2 = fso.GetExtensionName("c:\\My Documents\\Letters\\d1.doc"); // s2 равно "doc"
Метод GetFile
Синтаксис: fso.GetFile(имя) Аргументы: имя строковое выражение Результат: объект File
Метод GetFile возвращает объект File, соответствующий файлу с заданным именем. Если файла с данным именем не существует, метод завершается ошибкой. Пример: следующая функция возвращает дату создания заданного файла.
function DateCreated(path) { var fso = new ActiveXObject("Scripting.FileSystemObject"); var f = fso.GetFile(path); return f.DateCreated; }
Метод GetFileName
Синтаксис: fso.GetFileName(путь) Аргументы: путь строковое выражение Результат: строковое значение
Метод GetFileName извлекает из заданного пути его последний компонент: имя каталога или имя файла. В последнем случае имя файла возвращается вместе с расширением. Примеры:
var fso = new ActiveXObject("Scripting.FileSystemObject"); var s1 = fso.GetBaseName("c:\\My Documents\\Letters"); // s1 равно "Letters" var s2 = fso.GetBaseName("c:\\My Documents\\Letters\\d1.doc"); // s2 равно "d1.doc"
Метод GetFolder
Синтаксис: fso.GetFolder(имя) Аргументы: имя строковое выражение Результат: объект Folder
Метод GetFolder возвращает объект Folder, соответствующий папке с заданным именем. Если папки с данным именем не существует, метод завершается ошибкой. Пример: следующая функция возвращает дату создания заданного папки.
function DateCreated(path) { var fso = new ActiveXObject("Scripting.FileSystemObject"); var f = fso.GetFolder(path); return f.DateCreated; }
Метод GetParentFolderName
Синтаксис: fso.GetParentFolderName(путь) Аргументы: путь строковое выражение Результат: строковое значение
Метод GetParentFolderName извлекает из заданного пути отцовскую папку его последнего компонента или пустую строку, если такой папки в пути нет. Примеры:
var fso = new ActiveXObject("Scripting.FileSystemObject"); var s1 = fso.GetParentFolderName("c:\\My Documents\\Letters"); // s1 = "My Documents" var s2 = fso.GetParentFolderName("file.txt"); // s2 = ""
Метод GetSpecialFolder
Синтаксис: fso.GetSpecialFolder(номер) Аргументы: номер числовое выражение Результат: объект Folder
Метод GetSpecialFolder возвращает объект Folder, соответствующий системной папке, заданной аргументом номер согласно следующей таблицы.
Номер | Системная папка |
---|---|
0 | Папка операционной системы Windows |
1 | Папка System операционной системы Windows |
2 | Папка для хранения временных файлов. |
Например, в системе Windows 98 будут возвращены следующие имена папок:
var fso = new ActiveXObject("Scripting.FileSystemObject"); var s1 = fso.GetSpecialFolder(0).Path; // s1 равно "C:\\WINDOWS" var s2 = fso.GetSpecialFolder(1).Path; // s2 равно "C:\\WINDOWS\\SYSTEM" var s3 = fso.GetSpecialFolder(2).Path; // s3 равно "C:\\WINDOWS\\TEMP"
Метод GetTempName
Синтаксис: fso.GetTempName() Результат: строковое значение
Метод GetTempName возвращает случайно сгенерированное имя временного файла. Этим методом следует пользоваться для создания временных файлов, которые после создания и использования будут удалены сценарием. Пример:
var fso = new ActiveXObject("Scripting.FileSystemObject"); var tempFolder = fso.GetSpecialFolder(2); var tempFile = tempFolder.CreateTextFile(fso.GetTempName());
Метод MoveFile
Синтаксис: fso.MoveFile(источник, цель) Аргументы: источник, цель строковые выражения
Метод MoveFile перемещает один или несколько файлов в другое место. При этом строка источник задает спецификацию исходного файла и может содержать подстановочные знаки "*" и "?" в последнем компоненте, а строка цель задает имя результирующего файла или папки.
Если источник содержит подстановочные знаки или цель заканчивается символом "\", то цель считается именем папки, в которую перемещаются исходные файлы. В остальных случаях цель считается именем результирующего файла. Сам процесс перемещения происходит так:
- если нет файлов, соответствующих спецификации источника, то метод завершается ошибкой;
- если файла с именем цель нет, то производится перемещение файла;
- если файл цель существует, то метод завершается ошибкой;
- если цель является каталогом, то метод завершается ошибкой.
Пример: следующий сценарий перемещает все файлы из корневой папки дискеты A в папку d:\Temp.
var fso = new ActiveXObject("Scripting.FileSystemObject"); fso.MoveFile("a:\\*.*", "d:\\Temp");
Метод MoveFolder
Синтаксис: fso.MoveFolder(источник, цель) Аргументы: источник, цель строковые выражения
Метод MoveFolder перемещает одну папку в другую, включая подпапки. При этом строка источник задает спецификацию исходной папки и может содержать подстановочные знаки "*" и "?" в последнем компоненте, а строка цель задает имя результирующей папки.
Если источник содержит подстановочные знаки или цель заканчивается символом "\", то цель считается именем существующей папки, в которую перемещаются исходные файлы. В остальных случаях цель считается именем новой папки, которую необходимо создать. Сам процесс перемещения происходит так:
- если нет файлов, соответствующих спецификации источника, то метод завершается ошибкой;
- если папки с именем цель нет, то она создается и производится перемещение файлов;
- если цель задает имя существующего файла, то метод завершается ошибкой;
- если файлы исходной папки уже есть в цели, то метод завершается ошибкой.
Пример: следующий сценарий перемещает все файлы и папки из корневой папки дискеты A в папку d:\Temp.
var fso = new ActiveXObject("Scripting.FileSystemObject"); fso.CopyFolder("a:\\", "d:\\Temp");
Метод OpenTextFile
Синтаксис: fso.OpenTextFile(имя [[[, режим]?, флаг]?, формат]?) Аргументы: имя строковое выражение режим, формат числовые выражения флаг логическое выражение Результат: новый объект TextStream
Метод OpenTextFile открывает текстовый файл с заданным именем. При этом необязательный аргумент флаг указывает, следует ли создавать новый файл, если файла с таким именем нет (по умолчанию он равен false, т. е. файл не создается).
Необязательный аргумент режим задает режим открытия файла и может принимать следующие значения:
1 | Открыть файл только для чтения. Принято по умолчанию. |
2 | Открыть файл для записи. Запись производится с начала файла, старое содержимое теряется. |
8 | Открыть файл для добавления. Запись производится в конец файла. |
Необязательный аргумент формат задает кодировку символов файла и может принимать следующие значения:
0 | Открыть файл в кодировке ANSI. Принято по умолчанию. |
-1 | Открыть файл в кодировке Unicode. |
-2 | Открыть файл в кодировке операционной системы. |
Пример открытия файла в режиме добавления:
var fso = new ActiveXObject("Scripting.FileSystemObject"); var ts = fso.OpenTextFile("c:\\file.txt", 8); ts.WriteLine("Тестовая строка."); ts.Close();