Найти: на

Объект FileSystemObject (FSO)

Встречи on-line для разработчиков

Внимание! Сайт переехал на http://бизнесплюспермь.рф

Примеры использования объекта FileSystemObject (FSO) в 1С

Объектная модель FSO позволяет работать с файлами и папками: создавать, изменять, перемещать и удалять. Получать доступ к системным папкам: наличие, расположение. Можно получать информацию о дисках, папках и файлах: их имена, атрибуты, даты создания или изменения и т.д. Кроме того, создание и манипулирование текстовыми файлами (не двоичными!).

FSO имеет следующие объекты:

Объекты FSO

Объект Описание
Drive Позволяет получить информацию о дисководах, присоединенных к системе: их тип, объем (общий, занятый и свободный), метку, серийный номер и т.д. Под словом "дисковод" не обязательно подразумевается жесткий диск. Это может быть FDD, CD-ROM, виртуальный диск и т.д. Также не обязательно, чтобы дисководы были физически присоединены к системе - обеспечивается работа с сетевыми дисками.
Folder (Папка) Позволяет создавать, удалять или перемещать папки. Также через этот объект можно получить сведения об их именах, атрибутах, путях к определенным папкам и так далее.
Files (Файлы) Позволяет создавать, удалять или перемещать файлы. Предоставляет доступ к атрибутам, именам и прочим характеристикам файлов.
FileSystemObject Основной объект группы. Содержит методами, которые позволяют создавать, удалять, получать информацию обо всех объектах файловой системы. Также осуществляет управление дисководами, папками и файлами. Многие из методов, связанных с этим объектом, дублированы в других объектах.
TextStream Дает возможность читать и писать текстовые файлы.

Drive

Объект Drive обеспечивает доступ к свойствам логических дисков, дисководов и сетевых дисков. Данный объект возвращается методом GetDrive():


FSO = Новый COMОбъект("Scripting.FileSystemObject");
Drive = FSO.GetDrive("c");

Получить все диски можно следующим образом:


ФСО = Новый COMОбъект("Scripting.FileSystemObject");
ФСО_Диски = ФСО.Drives;

Из полученного таким образом массива можно получить инфомацию о всех дисках в системе:

Для каждого ФСО_Диск из ФСО_Диски Цикл
	Если ФСО_Диск.DriveType = 2 Тогда
		// Это жесткий диск		
		Прервать;
	КонецЕсли;
КонецЦИкла;

Свойства объекта Drive

Свойство Описание
AvailableSpace Возвращает количество места, доступного пользователю на указанном диске или сетевом ресурсе.
DriveLetter Возвращает букву указанного диска.
DriveType Возвращает число, обозначающее тип диска.
Возможные значения:
0 = Unknown
1 = Removable
2 = Fixed
3 = Network
4 = CD-ROM
5 = RAM Disk
FileSystem Возвращает строку с типом файловой системы указанного диска.
FreeSpace Возвращает количество места, доступного пользователю на указанном диске или сетевом ресурсе. Свойство аналогично AvailableSpace. Разница возможна при использовании на одном диске разных файловых систем (В оригинале документации фраза звучала так: Differences may occur between the two for computer systems that support quotas).
IsReady Проверяет готовность устройства к работе. Имеет смысл только для съемных дисков или CD-ROM.
Возвращает:
0 - устройство не готово
-1 - устройство готово
Path Возвращает путь до указанного диска, т.е. имя указанного диска с двоеточием.
RootFolder Возвращает объект типа Folder со значением равным корневой папке указанного диска.

Drive = FSO.GetDrive("c");
Если Drive.IsReady=-1 Тогда
	RF=Drive.RootFolder;
	Сообщить(''Корневой каталог диска c: ''+СокрЛП(RF.Path));
КонецЕсли;
SerialNumber Возвращает серийный номер указанного диска.

СерийныйНомерЖесткогоДиска = ФСО_Диск.SerialNumber;
ShareName Возвращает сетевой путь до сетевого диска. В случае указания локального диска возвращается пустая строка.
TotalSize Возвращает полный размер указанного диска.
VolumeName Читает/Устанавливает метку тома.

Folder (Папка)

Объект Folder обеспечивает доступ ко всем свойствам папки. Данный объект возвращается методом GetFolder():

FSO = Новый COMОбъект("Scripting.FileSystemObject");
File = FSO.GetFolder("c:\program files\1cv8");
Сообщить("Имя папки: "+File.Name);
Сообщить("Тип папки: "+File.Type);
Сообщить("Папка "+?(File.IsRootFolder=-1,"корневая","не корневая"));
Сообщить("Расположена на диске: "+File.Drive.Path);
Сообщить("Родительская папка: "+File.ParentFolder.Name);
Сообщить("Полный путь до папки: "+File.Path);
Сообщить("Короткое имя папки: "+File.ShortName);
Сообщить("Короткий путь до папки: "+File.ShortPath);
Сообщить("Размер папки: "+Формат(File.Size,"Ч( )15.2")+" байт");
Сообщить("Дата создания папки: "+File.DateCreated);
Сообщить("Дата последнего доступа к папке: "+File.DateLastAccessed);
Сообщить("Дата последнего изменения папки: "+File.DateLastModified);

Свойства Folder

Свойство Описание
Attributes Читает/устанавливает значение атрибутов.
Расшифровка значений:
0 Атрибуты не установлены
1 Read-only file.
2 Hidden file.
4 System file.
8 Метка тома. Только для чтения.
16 Папка. Только для чтения.
32 Архивный файл.
64 Ссылка или ярык.
128 Сжатый файл. Только для чтения.
При сочетании атрибутов их значения суммируются.
DateCreated Возвращает дату и время создания папки. Только чтение. В случае с 1С возвращается только дата.
DateLastAccessed Возвращает дату и время последнего доступа к папке. Только чтение. В случае с 1С возвращает только дату.
DateLastModified Возвращает дату и время последнего изменения папки. Только чтение. В случае 1С возвращает только дату.
Drive Возвращет объект типа Drive, содержащий диск, на котором находится указанная папка.
Files Возвращает коллекцию объектов типа File, находящихся в папке.
IsRootFolder Возвращает признак корневой папки. Значение: -1 - папка корневая; 0 - иначе.
Name Возвращает/устанавливает новое имя файла. Имя файла возвращается с расширением.
ParentFolder Возвращает объект типа Folder, содержащий родительскую папку указанного файла.
Path Возвращает полный путь до указанного файла.
ShortName Возвращает короткое имя файла.
ShortPath Возвращает короткий путь до файла.
Size Возвращает размер указанного файла.
SubFolders Возвращает коллекцию состоящую из объектов типа Folder, содержащую папки, находящиеся внутри данной папки.
Type Возвращает расшифровку типа папки в виде строки. Расшифровка берется из ассоциаций Windows.

Методы Folder

Метод Описание
Copy(<Путь>,<Перезаписывать>) Копирует указанную папку в каталог.
Параметры:
<Путь> - путь-приемник (куда копируем).
<Перезаписывать> - флаг перезаписи в случае, если такая папка там уже существует. -1 - перезаписывать, 0 - не перезаписывать. Не обязателен. По умолчанию -1.
Delete(<Флаг>) Удаление папки.
Параметры:
<Флаг> - флаг удаления папки с атрибутом только чтение. -1 - удалять; 0 - не удалять. Не обязателен. По умолчанию равен 0.
Move(<Путь>) Перемещение папки в другую родительскую папку.
Параметры: <Путь> - каталог, куда переносим папку.

Files (Файлы)

Объект File обеспечивает доступ ко всем свойствам файла. Данный объект возвращается методом GetFile():

FSO = Новый COMОбъект("Scripting.FileSystemObject");
File = FSO.GetFile("c:\Program Files\1cv8\1cv8.exe");
Сообщить("Имя файла: "+File.Name);
Сообщить("Тип файла: "+File.Type);
Сообщить("Расположен на диске: "+File.Drive.Path);
Сообщить("Родительская папка файла: "+File.ParentFolder.Name);
Сообщить("Полный путь до файла: "+File.Path);
Сообщить("Короткое имя файла: "+File.ShortName);
Сообщить("Короткий путь до файла: "+File.ShortPath);
Сообщить("Размер файла: "+Формат(File.Size,"Ч( )15.2")+" байт");
Сообщить("Дата создания файла: "+File.DateCreated);
Сообщить("Дата последнего доступа к файлу: "+File.DateLastAccessed);
Сообщить("Дата последнего изменения файла: "+File.DateLastModified);

Свойства Files

Свойство Описание
Attributes Читает/устанавливает значение атрибутов.
Расшифровка значений:
0 Атрибуты не установлены
1 Read-only file.
2 Hidden file.
4 System file.
8 Метка тома. Только для чтения.
16 Папка. Только для чтения.
32 Архивный файл.
64 Ссылка или ярык.
128 Сжатый файл. Только для чтения.
При сочетании атрибутов их значения суммируются.
DateCreated Возвращает дату и время создания файла. Только чтение. В случае с 1С возвращается только дата.
DateLastAccessed Возвращает дату и время последнего доступа к файлу. Только чтение. В случае с 1С возвращает только дату.
DateLastModified Возвращает дату и время последнего изменения файла. Только чтение. В случае 1С возвращает только дату.
Drive Возвращет объект типа Drive, содержащий диск, на котором находится указанный файл.
Name Возвращает/устанавливает новое имя файла. Имя файла возвращается с расширением.
ParentFolder Возвращает объект типа Folder, содержащий родительскую папку указанного файла.
Path Возвращает полный путь до указанного файла.
ShortName Возвращает "короткое" имя файла.
ShortPath Возвращает короткий путь до файла.
Size Возвращает размер указанного файла.
Type Возвращает расшифровку типа файла в виде строки. Расшифровка берется из ассоциаций Windows.

Методы Files

Метод Описание
Copy(<Путь>,<Перезаписывать>) Копирует указанный файл в каталог.
Параметры:
<Путь> - путь-приемник файла (куда копируем). Можно указывать как просто папку куда копируем, так и папку + новое имя файла.
<Перезаписывать> - флаг перезаписи в случае, если такой файл там уже существует. -1 - перезаписывать, 0 - не перезаписывать. Не обязателен. По умолчанию -1. В случае установки флага в 0 и существования файла на месте копирования, будет выдана ошибка.
Delete(<Флаг>) Удаление файла.
Параметры:
<Флаг> - флаг удаления файла с атрибутом только чтение. -1 - удалять; 0 - не удалять. Не обязателен. По умолчанию равен 0.
Move(<Путь>) Перемещение файла в другую папку, переименование файла.
Параметры:
<Путь> - каталог/имя, куда переносим файл.
OpenAsTextStream(<РежимЧтения>,<Формат>) Открывает указанный файл как текст. Возвращает объект типа TextStream.
Параметры:
<РежимЧтения> - режим открытия файла.
Значения: 1- только для чтения; 2 - для записи, если файл существует, то его содержимое будет очищено; 8 - для добавления строк в файл. Не обязателен.
<Формат> - формат текста в файле.
Значения: -2 - по умолчанию для ОС; -1 - открывает в формате Unicode; 1 - открывает в формете ASCII. Не обязателен.

FileSystemObject

Содержит методами, которые позволяют создавать, удалять, получать информацию обо всех объектах файловой системы. Также осуществляет управление дисководами, папками и файлами. Данный объект создается при помощи команды

Новый COMОбъект("Scripting.FileSystemObject")

Свойства FileSystemObject

Свойство Описание
Drives Возвращает коллекцию состоящую из объектов типа Drive, содержащую все диски на данном компьютере. Примеры работы с этими объектами были описаны выше.

Методы FileSystemObject

Метод Описание
BuildPath(<Путь>, <ИмяФайла>) Возвращает строку с полным путем до файла из указанного пути и имени файла. Метод необходим для корректного ''прибавления'' имени файла к пути.
Параметры:
<Путь> - путь до файла.
<ИмяФайла> - имя файла.
CopyFile(<Источник>, <Приемник>, <ФлагПерезаписи>) Копирует файл(ы) из источника в приемник.
Параметры:
<Источник> - строка с указанием файла(ов) источника. Можно указывать шаблоны в формате DOS.
<Приемник> - папка-приемник куда копируем.
<ПризнакПерезаписи> - флаг перезаписи файлов в приемнике, если они там уже существуют. -1 - перезаписывать; 0 - не перезаписывать. Не обязателен. По умолчанию -1.
CopyFolder(<Источник>, <Приемник>, <ФлагПерезаписи>) Копирует папку(и) из источника в приемник.
Параметры:
<Источник> - строка с указанием папки источника. Можно указывать шаблоны в формате DOS.
<Приемник> - папка-приемник куда копируем.
<ПризнакПерезаписи> - флаг перезаписи файлов в приемнике, если они там уже существуют. -1 - перезаписывать; 0 - не перезаписывать. Не обязателен. По умолчанию -1.
FSO = Новый COMОбъект("Scripting.FileSystemObject");
FSO.CopyFolder("d:\1c77\*", "d:\temp");
CreateFolder(<ИмяПапки>) Создает новую папку.
Параметры:
<ИмяПапки> - имя новой папки
CreateTextFile(<ИмяФайла>, <Перезапись>, <Формат>) Создает новый текстовый файл. Возвращает объект типа TextStream.
Параметры:
<ИмяФайла> - строка с именем файла.
<Перезапись> - флаг перезаписи создаваемого файла. Значения: -1 - перезаписывать; 0 - не перезаписывать. Если файл существует и признак установлен в 0, то будет выдана ошибка. Не обязателен. По умолчанию 0.
<Формат> - флаг формата создаваемого файла. Значения: -1 - Unicode; 0 - ASCII. Не обязателен. По умолчанию 0.
DeleteFile(<Файл>, <УдалятьВсе>) Удаляет файл(ы).
Параметры:
<Файл> - строка с именем удаляемого файла(ов). Могут использоваться шаблоны в формате DOS.
<УдалятьВсе> - флаг удаления файлов с признаком только чтение. Значения: -1 - удалять; 0 - не удалять. Не обязателен. Значение по умолчанию 0.
В случае, если файл не найден, возникает ошибка. При этом, откат предыдущих операций (удалений) не происходит.
DeleteFolder(<Папка>, <УдалятьВсе>) Удаляет папку(и).
Параметры:
<Папка> - строка с именем удаляемой папки. Можно использовать шаблоны DOS.
<УдалятьВсе> - флаг удаления папок с признаком только чтение. Значения: -1 - удалять; 0 - не удалять. Не обязателен. Значение по умолчанию 0.
DriveExists(<Диск>) Проверяет наличие диска в системе. Возвращает -1, если указаный диск существует, иначе 0.
Параметры:
<Диск> - строка с буквой диска или с полным путем.
FileExists(<ИмяФайла>) Проверяет существование файла. Возвращает -1, если указанный файл существует, иначе 0.
Параметры:
<ИмяФайла> - строка с именем файла.
FolderExists(<ИмяПапки>) Проверяет существование папки. Возвращает -1, если указанная папка существует, иначе 0.
Параметры:
<ИмяПапки> - строка, содержащая имя папки.
GetAbsolutePathName(<Путь>) Возвращает полный путь до указанной строки, относительно текущего каталога.
Параметры:
<Путь> - строка, содержащая путь, который надо рассчитать.
GetBaseName(<Путь>) Возвращает имя файла из указанного пути без расширения или последнюю секцию пути (только для локальных путей).
Параметры:
<Путь> - строка, содержащая путь, из которого надо извлечь имя. Если указать имя диска, то будет возвращена пустая строка.
GetDrive(<Диск>) Возвращает объект типа Drive для указанного диска.
Параметры:
<Диск> - строка, содержащая имя диска. Может быть: буквой диска, буквой диска с двоеточием, буквой диска с двоеточием и наклонной чертой, путем до сетевого ресурса.
GetDriveName(<Путь>) Возвращает строку с именем диска и двоеточием.
Параметры:
<Путь> - строка пути, из которой надо найти диск.
GetExtensionName(<Путь>) Возвращает расширение для указанного файла.
Параметры:
<Путь> - строка, содержащая путь до файла.
GetFile(<Путь>) Возвращает объект типа File.
Параметры:
<Путь> - строка, содержащая путь до указанного файла.
GetFileName(<Путь>) Возвращает имя файла с его расширением или последнюю секцию из указанного пути (только для локальных путей).
Параметры:
<Путь> - строка, содержащая путь до файла.
GetFolder(<Каталог>) Возвращает объект типа Folder для указанного каталога.
Параметры:
<Каталог> - строка, содержащая путь до каталога.
GetParentFolderName(<Путь>) Возвращает полный путь до родительской папки.
Параметры:
<Путь> - строка, содержащая путь до файла или до папки.
GetSpecialFolder(<Номер>) Возвращает путь до системных папок.
Параметры:
<Номер> - номер вида возвращаемой папки. Возможные значения:
0 - каталог Windows;
1 - системыный каталог Windows;
2 - каталог временных файлов.
GetTempName() Возвращает уникальное имя для временного файла.
Примечание:
Для создания пути временного файла во временном каталоге можно использовать следующую конструкцию:
ВремИмя = GetSpecialFolder(2)+GetTempName();
MoveFile(<Источник>, <Приемник>) Перемещает файл(ы). Если в папке приемнике уже существует перемещаемый файл или есть папка с таким же именем, то происходит ошибка.
Параметры:
<Источник> - строка, содержащая путь до перемещаемыъ файлов. Возможно указание шаблонов в формате DOS.
<Приемник> - строка, содержащая путь до папки приемника.
MoveFolder(<Источник>, <Приемник>) Перемещает указанный каталог(и). Если в папке приемнике уже сущестует файл или каталог с таким именем, тогда возникает ошибка.
Параметры:
<Источник> - строка, содержащая путь до перемещаемыъ файлов. Возможно указание шаблонов в формате DOS.
<Приемник> - строка, содержащая путь до папки приемника.
OpenTextFile(<ИмяФайла>, <РежимЧтения>, <СоздаватьФайл>, <Формат>) Открывает указанный текстовый файл. Возвращает объект типа TextStream.
Параметры:
<ИмяФайла> - строка, содержащая имя файла.
<РежимЧтения> - режим открытия файла.
Значения: 1- только для чтения; 2 - для записи, если файл существует, то его содержимое будет очищено; 8 - для добавления строк в файл. Не обязателен. По умолчанию 1.
<СоздаватьФайл> - флаг создания файла, если он не существует. -1 - создавать файл; 0 - не создавать файл. Не обязателен. По умолчанию 0.
<Формат> - формат текста в файле.
Значения: -2 - по умолчанию для ОС; -1 - открывает в формате Unicode; 1 - открывает в формете ASCII. Не обязателен. По умолчанию 1.

TextStream

Объект TextStream обеспечивает доступ к текстовым файлам и содержимому текстовых потоков. Данный объект возвращается методами
OpenTextFile() [объект FileSystemObject];
CreateTextFile() [объект FileSystemObject];
OpenAsTextStream() [объект File].
Свойствами:
StdOut,StdIn,StdErr [объект WshScriptExec]

Свойства TextStream

Свойство Описание
AtEndOfLine Флаг окончания файла. Возвращает -1 если текущая позиция чтения файла указывает на символ конца строки, иначе 0.
AtEndOfStream Флаг окончания файла. Возвращает -1 если текущая позиция чтения текстового потока указывает на символ конца строки, иначе 0.
Column Возвращает номер текущего символа в позиции. Нумерация символов начинается с 1.
Line Возвращает номер текущей строки в позиции. Нумерация строк начинается с 1.

Методы TextStream

Метод Описание
Close() Закрывает открытый файл.
Read(<КоличествоСимволов>) Считывает указаное количество символов из файла или текстового потока и возвращает в виде строки.
Параметры:
<КоличествоСимволов> - количество символов, которое надо считать.
ReadAll() Считывает и возвращает весь файл или или текстовый поток от текущей позиции в виде строки.
ReadLine() Считывает и возвращает текущую строку.
Skip(<КоличествоСимволов>) Смещает вперед текущую позицию на указаное количество символов.
Параметры:
<КоличествоСимволов> - количество символов, на которое надо сместить текущую позицию.
SkipLine() Пропускает текущую строку и устанавливает позицию на следующую.
Write(<ЗаписываемаяСтрока>) Записывает в текстовый файл или в текстовый поток строку, без перевода строки.
Параметры:
<ЗаписываемаяСтрока> - строка, которую записываем.
WriteBlankLines(<КоличествоНовыхСтрок>) Записывает в текстовый файл указаное количество пустых новых строк.
Параметры:
<КоличествоНовыхСтрок> - количество записываемых строк.
WriteLine(<ЗаписываемаяСтрока>) Записывает строку в файл или в текстовый поток с переводом на следующую строку.
Параметры:
<ЗаписываемаяСтрока> - строка, которую записываем. Может быть пустой.


Внимание! Сайт переехал на http://бизнесплюспермь.рф

Hosted by uCoz