Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
УП Технология программирования.doc
Скачиваний:
20
Добавлен:
11.06.2015
Размер:
1.69 Mб
Скачать

Приложение 4. Работа с файловой системой вJScript

Доступ к файловой системе компьютера осуществляется через ActiveX-объектFileSystemObject. Экземпляр этого объекта создаётся конструктором

fso = newActiveXObject("Scripting.FileSystemObject")

Объект FileSystemObjectпредоставляет доступ к объектам типаDrive,FolderиFile, представляющим диски, каталоги (папки) и файлы в файловой системе компьютера. При открытии какого-то файла для чтения-записи текста, создаётся объект типаTextStream, предоставляющий последовательный доступ к содержимому этого файла.

Для просмотра файловой системы объект FileSystemObjectсодержит коллекцию дисков Drives, а каждая папка содержит коллекцию непосредственно содержащихся в ней папок (коллекцияSubFolders) и файлов (коллекцияFiles). Просмотр этих коллекций осуществляется с помощью специального объектаEnumerator– счётчика элементов коллекций.

Свойства, методы и коллекции объектов файловой системы

Объект FileSystemObject

Свойства

Нет свойств.

Методы

fso.BuildPath(путь,имя)

Добавляет имя к существующему пути. Выдаёт полученный путь.

fso.CopyFile(путь источника,путь назначения[,заменить])

Копирует файл или несколько файлов. Ничего не выдаёт.

fso.CopyFolder(путь источника,путь назначения[,заменить])

Копирует папку со всем содержимым. Ничего не выдаёт.

fso.CreateFolder(путь папки)

Создаёт папку, если это возможно. Выдаёт объектFolder.

fso.CreateTextFile(путь [,заменить[,флаг_юникода]])

Создаёт и открывает текстовый файл для записи, если это возможно. Выдаёт объект TextStream(подробнее в п. 39).

fso.DeleteFile(путь файла [,только для чтения])

Удаляет файл или несколько файлов, если это возможно. Ничего не выдаёт.

fso.DeleteFolder(путь папки [,только для чтения])

Удаляет одну или несколько папок со всем содержимым, если это возможно. Ничего не выдаёт.

fso.DriveExists(буква или путь диска)

Проверяет существование диска и выдаёт соответствующее логическое значение.

fso.FileExists(путь)

Проверяет существование файла и выдаёт соответствующее логическое значение.

fso.FolderExists(путь)

Проверяет существование папки и выдаёт соответствующее логическое значение.

fso.GetAbsolutePathName(образец пути)

Выдаёт однозначный абсолютный путь, поостренный по заданному образцу.

fso.GetBaseName(путь)

Выдаёт собственное имя папки или файла (без расширения)

fso.GetDrive(буква или путь диска)

Выдаёт соответствующий объект типа Drive.

fso.GetDriveName(путь)

Выдаёт имя диска для заданного произвольного пути.

fso.GetExtensionName(путь файла)

Выдаёт расширение имени файла для заданного пути.

fso.GetFile(путь файла)

Выдаёт соответствующий объект типа File.

fso.GetFileName(путь файла)

Для заданного пути выдаёт имя файла с расширением.

fso.GetFolder(путь папки)

Выдаёт соответствующий объект типа Folder.

fso.GetParentFolderName(путь папки или файла)

Выдаёт имя родительской папки.

fso.GetSpecialFolder(спецификация)

Выдаёт объект типа Folderдля системной папкиWindows, если спецификация равна 0,System, если спецификация равна 1,Temp, если спецификация равна 2.

fso.GetTempName()

Выдаёт сгенерированное случайным образом имя, которое можно использовать для создания временного файла или каталога.

fso.MoveFile(путь источника,путь назначения)

Перемещает файл или несколько файлов. Ничего не выдаёт.

fso.MoveFolder(путь источника,путь назначения)

Перемещает папку или несколько папок с их содержимым. Ничего не выдаёт.

fso.OpenTextFile(путь,вид [,создать [,формат]])

Открывает и, возможно, создаёт текстовый файл. Выдаёт объект TextStream(подробнее в п. 39).

Коллекции

fso.Drives

Коллекция всех дисков и дисководов (объектов типа Drive), доступных на компьютере.

Объект TextStream

Свойства

ts.AtEndOfLine

Логическое значение, указывающее, находится ли указатель текстового файла в конце строки текста.

ts.AtEndOfStream

Логическое значение, указывающее, находится ли указатель текстового файла в конце всего текста.

ts.Column

Номер текущего символа в текущей строке текста. Нумерация символов в строке начинается с 1.

ts.Line

Номер текущей строке текста. Нумерация строк начинается с 1.

Методы

ts.Close()

Закрывает открытый текстовый файл. Ничего не выдаёт.

ts.Read(число)

Читает из файла указанное число символов и выдаёт прочитанный текст.

ts.ReadAll()

Читает из файла и выдаёт весь текст.

ts.ReadLine()

Читает из файла текст до конца текущей строки и выдаёт прочитанный текст (без символа конец строки).

ts.Skip(число)

Переносит указатель текста на заданное число символов (только в режиме чтения). Ничего не выдаёт.

ts.SkipLine()

Переносит указатель текста на начало следующей строки (только в режиме чтения). Ничего не выдаёт.

ts.Write(строка)

Записывает заданную строку в конец файла. Ничего не выдаёт.

ts.WriteBlankLines(число)

Записывает заданное число символов конец строкив конец файла. Ничего не выдаёт.

ts.WriteLine([строка])

Записывает заданную строку и символ конец строкив конец файла. Ничего не выдаёт.

Коллекции

Нет коллекций

Объект Drive

Свойства

drive.AvailableSpace

Количество байтов памяти диска, доступной пользователю.

drive.DriveLetter

Буква указанного диска (дисковода).

drive.DriveType

Число, указывающее тип диска: 0 – неизвестный, 1 – съёмный, 2 – локальный (жесткий), 3 – сетевой, 4 – CD-ROM, 5 –RAM-диск.

drive.FileSystem

Тип файловой системы диска – FAT,NTFSилиCDFS.

drive.FreeSpace

Количество байтов свободной памяти (из доступной пользователю) на диске.

drive.IsReady

Логическое значение, указывающее готовность диска (например, установлен ли диск в дисководе).

drive.Path

Путь диска (буква диска с двоеточием)

drive.RootFolder

Объект типа Folder, представляющий корневой каталог диска.

drive.SerialNumber

Уникальный десятичный серийный номер диска.

drive.ShareName

Для сетевого диска – его сетевое имя, в противном случае – пустая строка "".

drive.TotalSize

Полный объём памяти на диске в байтах.

drive.VolumeName

Имя, присвоенное диску. Можно присвоить в сценарии.

Методы

Нет методов

Коллекции

Нет коллекций

Объект Folder

Свойства

folder.Attributes

Байт атрибутов – целое число от 0 до 255. Представляет 8 одноразрядных атрибутов папки (каталога) или файла (в ОС каждая папка является специальным файлом). Атрибуты нумеруются справа налево от 0 до 7. 1 в некотором разряде означает наличие соответствующего свойства, а 0 – его отсутствие. 1 в n-м разряде представляется числом 2n. Атрибуты выражают следующие свойства:

0-й – файл «только для чтения» (число 1),

1-й – «скрытый» файл (число 2),

2-й – «системный» файл (число 4),

3-й – файл «метка тома» (число 8),

4-й – файл «папка (каталог)» (число 16),

5-й – «архивный» файл, т.е. измен1нный после последнего резервного копирования (число 32),

6-й – файл «ярлык», т.е. ссылка на другой файл (число 64),

7-й – «сжатый» файл (число 128),

К байту атрибутов можно применять арифметические операции, но лучше использовать поразрядные логические операции &,|,^и~, которые называютсяпоразряднымиAND (И),OR (ИЛИ),XOR(исключающее ИЛИ) иNOT (НЕ). В этих операцияхистинупредставляет 1, аложь– 0.

folder.DateCreated

Дата и время создания (строка).

folder.DateLastAccessed

Дата и время последнего открытия (строка).

folder.DateLastModified

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

folder.Drive

Буква содержащего диска.

folder.IsRootFolder

Логическое значение, указывающее, является ли папка корневой.

folder.Name

Полное имя папки (или файла).

folder.ParentFolder

Родительская папка (объект типа Folder)

folder.Path

Путь папки (или файла).

folder.ShortName

Короткое имя папки (или файла) – имя в DOS.

folder.ShortPath

Короткий путь папки (или файла) – путь в DOS.

folder.Size

Размер в байтах всего содержимого.

folder.Type

Строка, указывающая тип папки или файла (тип файла определяется по его расширению).

Методы

folder.Copy(путь назначения[,заменить])

Копирует указанную папку (folder) вместе с её содержимым. Подробности в п 39.

folder.Delete([только для чтения])

Удаляет указанную папку. Подробности в п 39.

folder.Move(путь назначения)

Перемещает указанную папку. Подробности в п 39.

Коллекции

folder.Files

Коллекция файлов (объектов типа File), содержащихся непосредственно в указанной папке.

folder.SubFolders

Коллекция подпапок – папок (объектов типа Folder), содержащихся непосредственно в указанной папке.

Объект File

Свойства

file.Attributes – аналогично объекту типаFolder

file.DateCreated – аналогично объекту типаFolder

file.DateLastAccessed – аналогично объекту типаFolder

file.DateLastModified – аналогично объекту типаFolder

file.Drive – аналогично объекту типаFolder

file.Name – аналогично объекту типаFolder

file.ParentFolder – аналогично объекту типаFolder

file.Path – аналогично объекту типаFolder

file.ShortName – аналогично объекту типаFolder

file.ShortPath – аналогично объекту типаFolder

file.Size – аналогично объекту типаFolder

file.Type– аналогично объекту типаFolder

Методы

file.Copy – аналогично объекту типаFolder

file.Delete – аналогично объекту типаFolder

file.Move – аналогично объекту типаFolder

file.OpenAsTextStream(вид[,формат]])

Открывает указанный текстовый файл аналогично методу OpenTextFile. Выдаёт объектTextStream(подробнее в п. 39).

Коллекции

Нет коллекций

Коллекции Drives, Folders, Files

Свойства

collect.Count

Число элементов коллекции.

Методы

folders.Add(имя новой папки)

Создаёт новую папку с указанным именем и выдаёт соответствующий объект типа Folder. Папка создаётся в той папке, для которой указанный объектfoldersявляется коллекцией подпапок. Новая папка добавляется в эту коллекции. Если папка с таким именем уже была в коллекции, возникает ошибка.

Объект Enumerator

Конструктор

new Enumerator(коллекция)

Создаёт счётчик для заданной коллекции. Счётчик имеет указатель на текущий элемент коллекции, сначала – на первый.

Методы

enum.atEnd()

Выдаёт логическое значение, показывающее, что указатель на­ходится в конце коллекции и не указывает никакого элемента.

enum.item()

Выдаёт текущий элемент коллекции (указатель не сдвигается).

enum.moveFirst()

Сдвигает указатель в начало коллекции. Ничего не выдаёт.

enum.moveNext()

Сдвигает указатель на следующий элемент. Ничего не выдаёт.