JavaScript
это современный язык, который позволяет работать с дисковой системой практически напрямую. В этом разделе описаны методы работы с файлами при помощи объекта Folder
. Это не модификация файла, а его атрибуты, пути и прочее. Т.е. сбор информации о папке. Наряду с этим при помощи методов можно копировать файл, перемещать и прочее. Довольно полезный объект )))
Файлы: объект Folder
Объект Folder обеспечивает доступ к отдельному папке. Он может быть создан методом FileSystemObject.GetFolder
или получен чтением свойств Drive.RootFolder
и File.ParentFolder
.
Свойство | Описание |
---|---|
Attributes | Атрибуты папки. |
DateCreated | Дата и время создания папки. |
DateLastAccessed | Дата и время последнего обращения к папке. |
DateLastModified | Дата и время последнего изменения папки. |
Drive | Буква диска, на котором находится папка. |
Files | Коллекция файлов данной папки. |
IsRootFolder | Проверяет, является ли папка корневой. |
Name | Имя папки. |
ParentFolder | Объект Folder папки, в которой находится папка. |
Path | Путь доступа к папке. |
ShortName | Короткое имя папки. |
ShortPath | Короткое имя пути доступа к папке. |
Size | Размер папки с подпапками. |
SubFolders | Коллекция подпапок данной папки. |
Type | Тип папки. |
Метод | Описание |
---|---|
Copy | Копирует папку. |
CreateTextFile | Создает текстовый файл. |
Delete | Удаляет папку. |
Move | Перемещает папку. |
Attributes
Свойство Attributes позволяет читать атрибуты данной папки и изменять некоторые из них. Полностью аналогично свойству File.Attributes
.
DateCreated
Свойство DateCreated возвращает дату и время создания данной папки. Пример: следующий сценарий
1 2 3 |
var fso = new ActiveXObject("Scripting.FileSystemObject"); var f = fso.GetFolder("c:\\Program Files"); document.write(f.DateCreated); |
выведет на экран обозревателя текст следующего вида: Mon Jul 12 20:43:58 UTC+0600 1999.
Примечание. Значение этого свойства имеет нестандартный тип VT_DATE стандарта COM. При присваивании строковой переменной оно автоматически преобразуется в строку указанного вида.
Mexanik
DateLastAccessed
Свойство DateLastAccessed возвращает дату и время последнего доступа к данной папке. Пример: следующий сценарий
1 2 3 |
var fso = new ActiveXObject("Scripting.FileSystemObject"); var f = fso.GetFolder("c:\\Program Files"); document.write(f.DateLastAccessed); |
выведет на экран обозревателя текст следующего вида: Mon Jul 12 20:43:58 UTC+0600 1999. (см. примечание выше)
DateLastModified
Свойство DateLastModified возвращает дату и время последней модификации данной папки. Пример: следующий сценарий
1 2 3 |
var fso = new ActiveXObject("Scripting.FileSystemObject"); var f = fso.GetFolder("c:\\Program Files"); document.write(f.DateLastModified); |
выведет на экран обозревателя текст следующего вида: Mon Jul 12 20:43:58 UTC+0600 1999. (см. примечание выше)
Drive
Свойство Drive возвращает букву, идентифицирующую диск, на котором находится данная папка. Если диск является сетевым и не отображен на логический диск, то возвращается пустая строка. Пример:
1 2 3 |
var fso = new ActiveXObject("Scripting.FileSystemObject"); var f = fso.GetFolder("c:\\Program Files"); var x = f.Drive; // x равно "C" |
Files
Свойство Files возвращает коллекцию объектов File
, соответствующих всем файлам, содержащимся в данной папке, включая скрытые и системные файлы. Для просмотра этой коллекции следует пользоваться объектом Enumerator
.
Пример: следующий сценарий выведет на экран список всех файлов корневого каталога диска C.
1 2 3 4 5 6 7 8 9 10 11 |
function ShowFileList(folderspec) { var fso = new ActiveXObject("Scripting.FileSystemObject"); var f = fso.GetFolder(folderspec); var fc = new Enumerator(f.Files); var s = ""; for (; !fc.atEnd(); fc.moveNext()) s += fc.item() + "<br>"; return s; } document.write(ShowFileList("c:\\")); |
IsRootFolder
Свойство IsRootFolder возвращает true, если данная папка является корневой, и false в противном случае.
Name
Свойство Name позволяет читать и изменять имя данной папки. Пример:
1 2 3 |
var fso = new ActiveXObject("Scripting.FileSystemObject"); var f = fso.GetFolder("c:\\Program Files"); var x = f.Name; // x равно "Program Files" |
ParentFolder
Метод ParentFolder возвращает объект Folder
, соответствующий папке, содержащей данную папку. Если папка является корневой, то возвращается null. Пример:
1 2 3 4 |
var fso = new ActiveXObject("Scripting.FileSystemObject"); var f = fso.GetFolder("c:\\Program Files"); var p = f.ParentFolder; var x = p.Path; // x равно "C:\\" |
Path
Свойство Path возвращает путь доступа к данной папке. Пример:
1 2 3 |
var fso = new ActiveXObject("Scripting.FileSystemObject"); var f = fso.GetFolder("c:\\Program Files"); var x = f.Path; // x равно "C:\\Program Files" |
ShortName
Свойство ShortName возвращает имя данной папки в нотации MS-DOS (8 символов на имя файла и 3 символа на расширение). Пример:
1 2 3 |
var fso = new ActiveXObject("Scripting.FileSystemObject"); var f = fso.GetFolder("C:\\Multimedia Files\\Graphics\\Animations"); var x = f.ShortName; // x равно "ANIMAT~1" |
ShortPath
Свойство ShortPath возвращает путь доступа к данной папке в нотации MS-DOS (8 символов на имя файла и 3 символа на расширение). Пример:
1 2 3 |
var fso = new ActiveXObject("Scripting.FileSystemObject"); var f = fso.GetFolder("C:\\Multimedia Files\\Graphics\\Animations"); var x = f.ShortPath; // x равно "C:\\MULTIM~1\\GRAPHICS\\ANIMAT~1" |
Size
Свойство SubFolders возвращает коллекцию объектов Folder, соответствующих всем папкам, содержащимся в данной папке, включая скрытые и системные папки. Для просмотра этой коллекции следует пользоваться объектом Enumerator
.
Пример: следующий сценарий выведет на экран список всех подпапок корневого каталога диска C.
1 2 3 4 5 6 7 8 9 10 11 |
function ShowFileList(folderspec) { var fso = new ActiveXObject("Scripting.FileSystemObject"); var f = fso.GetFolder(folderspec); var fc = new Enumerator(f.SubFolders); var s = ""; for (; !fc.atEnd(); fc.moveNext()) s += fc.item() + "<br>"; return s; } document.write(ShowFileList("c:\\")); |
Type
Свойство Type возвращает тип данной папки. Тип — это текстовая строка, соответствующая расширению файла и хранящаяся в системном реестре. Пример:
1 2 3 |
var fso = new ActiveXObject("Scripting.FileSystemObject"); var f = fso.GetFolder("C:\\Multimedia Files\\Graphics\\Animations"); var x = f.Type; // x равно "Папка с файлами" (в русифицированной Windows) |
Метод Copy
Синтаксис: объект.Copy(цель [, флаг]?)
Аргументы: цель — строковое выражение
флаг — логическое значение
Метод Copy полностью копирует данную папку. Строка цель задает имя результирующей папки, а необязательный аргумент флаг указывает, следует ли заменять при копировании существующие файлы (по умолчанию он равен true, т. е. существующие файлы заменяются). Сам процесс копирования происходит так:
- если папки с именем цель нет, то производится копирование папки;
- если папка цель существует и флаг равен false, то метод завершается ошибкой, иначе делается попытка копирования источника поверх цели; при этом независимо от значения флага, попытка замены существующего файла с атрибутом “только для чтения” завершается ошибкой.
Пример: следующий сценарий копирует папку c:\ в папку d:\Temp.
1 2 3 |
var fso = new ActiveXObject("Scripting.FileSystemObject"); var f = fso.GetFolder("c:\\"); f.Copy("d:\\Temp"); |
Ср. метод FileSystemObject.CopyFolder
.
Метод CreateTextFile
Синтаксис: объект.CreateTextFile(имя [[, флаг]?, unicode]?)
Аргументы: имя — строковое выражение
флаг, unicode — логические выражения
Результат: новый объект TextStream
Метод CreateTextFile создает текстовый файл с заданным именем. Он полностью аналогичен методу FileSystemObject.CreateTextFile
.
Метод Delete
Синтаксис: объект.Move(цель)
Аргументы: цель — строковое выражение
Метод Move перемещает данную папку в другое место. При этом строка цель задает имя результирующей папки. Сам процесс перемещения происходит так:
- если папки с именем цель нет, то производится перемещение папки;
- если папка цель существует, то метод завершается ошибкой.
Пример: следующий сценарий перемещает папку c:\ в папку d:\Temp (но делать этого не нужно!).
1 2 3 |
var fso = new ActiveXObject("Scripting.FileSystemObject"); var f = fso.GetFile("c:\\"); f.Move("d:\\Temp"); |
Ср. метод FileSystemObject.MoveFolder
.
Один комментарий для “JScript работа с папками”