Объект File — работа с файлами Windows

Объект File — работа с файлами Windows Объектная модель Windows Script Host

Всем привет, и снова с вами автор блога scriptcoding.ru. В этой публикации мы рассмотрим работу с файлами Windows программными средствами, с помощью сценариев Windows Script Host.

Работа с файлами Windows средствами Windows Script Host осуществляется с помощью объекта File и коллекции Files. Что бы получить доступ к классу _File_ используется метод GetFile объекта FileSystemObject. При работе с файлами для доступа к коллекции Files используется одноименное свойства объекта Folder.

Давайте рассмотрим соответствующие свойства и методы класса _File_.

Свойства объекта File – работа с файлами Windows

Attributes – Данное свойство дает возможность просмотреть или изменить атрибуты. Виды атрибутов, в скобках указано цифровое значение:

  • Normal – Обычный, без установленных атрибутов (0).
  • Readonly —  Только чтение (1).
  • Hidden — Скрытый (2).
  • System – Системный (4).
  • Directory — Папка или каталог (возможно, с атрибутом «только для чтения») (16).
  • Archive – Архивный (32).
  • Alias — Ярлык (1024).
  • Compressed – Сжатый (только для Windows NT/2000) (2048).

Пользователь может комбинировать значения констант для свойства Attributes.

DateCreated – Дата и время создания. Только_чтение.

DateLastAccessed — Дата и время последнего обращения. Только_чтение.

DateLastModified — Дата и время последней модификации документа. Доступно только для чтения

Drive – Буква диска для устройства, на котором лежит документ. Только_чтение.

Name – При работе с файлами позволяет просмотреть или изменить их имя. Чтение_и_запись

ParentFolder – Возвращает путь к каталогу, в котором лежит документ. Только чтение.

Path — Путь к документу

ShortName  — Короткое имя (например, 233_6E~3 ).

ShortPath — Короткий путь (например, C:work233_6E~3 ).

Size — Размер в байтах

Type – Позволяет получить информацию о типе.

Методы объекта File – работа с Windows файлами

Работа с Windows файлами

Copy(destination [, overwrite]) – При работе с файлами Windows позволяет произвести его копирование в заданное место, destination задает файл, в который будет производиться копирование, нельзя использовать подстановочные символы (*,? и так далее), overwrite: значение TRUE – произвести замену, FALSE – нет. Вместо метода Сору можно использовать метод CopyFile.

Delete([force]) – Позволяет удалить документ. Если параметр force равен false или не указан, то с помощью данного метода будет нельзя удалить элемент с атрибутом «только для чтения» (read-only), установка для force значения true позволит сразу удалять такие элементы. Вместо метода Delete можно использовать метод DeleteFile (FileSystemObject).

Move(destination) – При работе с файлом Windows, метод позволяет переместить его в другое место, destination определяет место назначения; подстановочные знаки в имени недопустимы. Вместо метода Move можно использовать MoveFile (FileSystemObject).

OpenAsTextStream([iomode,  [format] ]) – Открывает файл, метод вернет класс TextStream, используя который можно производить чтение, запись или добавление данных в текстовый файл, iomode задает режим ввода/вывода и может принимать те же значения, что и одноименный параметр в методе OpenTextFile, format определяет формат (ASCII (0) или Unicode(1)). Открыть текстовый файл для чтения можно также с помощью метода OpenTextFile (FileSystemObject).

Работаем программно с Windows файлами

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

Первый сценарий написан на языке VBScript, а второй на языке JScript, по умолчанию анализируется C:\Autoexec.bat, но вы можете изменить это значение или просто перетянуть документ на значок сценария.

Пример на языке vbscript:

' **************************************************************************' Класс File' Работа с файлами Windows' rabota-s-fajlami.vbs' ********************************************************************************OptionExplicitDim fso, oFile, objArgs, Text1, attrib, file, title Title = "Работа с Windows файлами" ' документ для анализаfile = "C:Autoexec.bat"Set objArgs = WScript.Arguments' В качестве анализа можно просто перетянуть документ на значок сценарияIf objArgs.Count > 0 Then file = objArgs(0) Set fso = WScript.CreateObject("Scripting.FileSystemObject")' Проверяем, существует ли файлIf fso.FileExists(file) ThenSet oFile = fso.GetFile(file)' Получаем информациюText1 = "Документ: " & vbTab & oFile.Name & vbCrLf & "Создан: " & vbTab & oFile.DateCreated & vbCrLf & "Изменен: " & vbTab & oFile.DateLastModified & vbCrLf & "Последнее обращение: " & vbTab & oFile.DateLastAccessed & vbCrLf & "Атрибуты " & vbTabattrib = oFile.Attributes' Это атрибут "только для чтения".If (attrib And &H01) > 0 Then Text1 = Text1 & "r "           ' "скрытый".If (attrib And &H02) > 0 Then Text1 = Text1 & "h "           ' "системный".If (attrib And &H04) > 0 Then Text1 = Text1 & "s "           ' "архивный".If (attrib And &H20) > 0 Then Text1 = Text1 & "a "           ' "сжатый".If (attrib And &H800) > 0 Then Text1 = Text1 & "c "MsgBox Text1, vbOKOnly + vbInformation, TitleElseWScript.Echo "Ошибка " & file & " не найден"EndIf

Пример на языке JScript:

// **************************************************************************// Класс File// Работа с файлами Windows// rabota-s-fajlami.js// ******************************************************************************** // документ для анализаvar file ="C:\Autoexec.bat";var Title ="Работа с Windows файлами";var vbOKOnly =0;var vbInformation =64;var Text;var objArgs = WScript.Arguments;var attrib; // В качестве анализа можно просто перетянуть документ на значок сценарияif(objArgs.length>0)file = objArgs(0); var fso = WScript.CreateObject("Scripting.FileSystemObject");WshShell = WScript.CreateObject("WScript.Shell");// Проверяем, существует ли файлif(!fso.FileExists(file)){WScript.Echo("Ошибка ", file," не найден");WScript.Quit(1);} var j = fso.GetFile(file); // Получаем информациюText ="Документ: tt"+ j.name+"n"+"Создан: tt"+ j.DateCreated+"n"+"Изменен: tt"+ j.DateLastModified+"n"+"Последнее обращение: t"+ j.DateLastAccessed+"n";// Декодировать атрибуты.Text +="Атрибуты tt";attrib = j.Attributes;if((attrib & 0x01)!=0)Text +="r ";if((attrib & 0x02)!=0)Text +="h ";if((attrib & 0x04)!=0)Text +="s ";if((attrib & 0x20)!=0)Text ="a ";if((attrib & 0x800)!=0)Text +="c ";WshShell.Popup(Text,0,Title, vbOKOnly + vbInformation);

Скачать архив с примерами

И так, программирование примеров закончено, теперь давайте рассмотрим сам программный код. По сути, вся работа с Windows файлами заключается в анализе Autoexec.bat, но это по умолчанию, так как сценарии обрабатывают передаваемые параметры, поэтому мы можем перетянуть на значок скрипта любой другой документ для его анализа. В конечно итоге будет выводится базовая информация: тип, дата создания, дата изменения и так далее.

Оцените статью
Технологии программирования и ведение блога
Добавить комментарий