Объект 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
' ********************************************************************************
Option Explicit
Dim 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) Then
Set oFile = fso.GetFile(file)
' Получаем информацию
Text1 = "Документ: " & vbTab & oFile.Name & vbCrLf & "Создан: " & vbTab & oFile.DateCreated & vbCrLf & "Изменен: " & vbTab & oFile.DateLastModified & vbCrLf & "Последнее обращение: " & vbTab & oFile.DateLastAccessed & vbCrLf & "Атрибуты " & vbTab
attrib = 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, Title
Else
WScript.Echo "Ошибка " & file & " не найден"
End If

Пример на языке 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 = "Документ: \t\t" + j.name + "\n" + "Создан: \t\t" + j.DateCreated + "\n"+ "Изменен: \t\t" + j.DateLastModified + "\n"+ "Последнее обращение: \t" + j.DateLastAccessed + "\n";
// Декодировать атрибуты.
Text += "Атрибуты \t\t";
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, но это по умолчанию, так как сценарии обрабатывают передаваемые параметры, поэтому мы можем перетянуть на значок скрипта любой другой документ для его анализа. В конечно итоге будет выводится базовая информация: тип, дата создания, дата изменения и так далее.

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