Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Работа с е файловой системой (для студентов).doc
Скачиваний:
1
Добавлен:
10.08.2019
Размер:
217.6 Кб
Скачать

Работа с файловой системой

Прежде чем начать

Для успешной работы с материалом, изложенным в этой главе, вы должны обладать навыками, о которых шла речь в предыдущих главах:

  • Использование конструкции For Each... Next

  • Применение конструкций Select Case

  • Использование констант

  • Применение внутренних свойств VBScript, таких как VbTab и Now

  • Применение конструкции lf...Then...Else

Изучив эту главу, вы будете знать, как:

  • Создавать вхождение FileSystemObject

  • Использовать FilesystemObject для вывода перечня файлов

  • Использовать FilesystemObject для создания файлов

  • Использовать FilesystemObject для подтверждения существования файлов

  • Использовать FilesystemObject для работы со свойствами файлов

  • Использовать FilesystemObject для работы с атрибутами файлов

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

Для взаимодействия с файловой системой сценарию необходимо уста­новить с ней соединение, чтобы можно было считывать файлы и папки. Инструментом, предназначенным для этой цели в Microsoft Visual Basic Script (VBScript) является объект файловой системы. После создания вхождения объекта файловой системы его можно использовать для вы­полнения следующих задач:

  • создание файлов и папок,

  • копирование файлов и папок,

  • перемещение файлов и папок,

  • удаление файлов и папок,

  • вывод свойств файлов и папок.

Несколько простых шагов

Чтобы вывести список файлов:

  1. С помощью CreateObject создайте FileSystemObject.

  2. Определите папку, в которой производится поиск, с помощью GetFolder.

  3. С помощью команды Files выведите перечень файлов.

  4. С помощью конструкции For Each обработайте файлы, находящиеся в папке.

Работа с файлами: что к чему

В первом сценарии Listfiles.vbs, связанном с файловой системой, будет реализовано подключение к FileSystemObject, связывание объекта файловой системы с папкой, определенной переменной FolderPath, после чего с помощью команды Files и цикла For Each на экран будут выведены все файлы, содержащиеся в папке. Это лишь малая часть того, что можно сделать с помощью этого сценария. Подумайте над тем, каким образом можно расширить возможности данного сценария, чтобы можно было выполнять некоторую действительно полезную работу по администрированию.

Option Explicit

On Error Resume Next

Dim FolderPath 'folder to be searched for files

Dim objFSO

Dim objFolder

Dim colFiles

Dim objFile

FolderPath = "C:\scriptingBook\BookScripts_VbScripf”

Set objFSO = CreateObject(“Scripting.FileSystemObject")

Set objFolder = objFSO.GetFolder(FolderPath)

Set colFiles = objFolder.Files

For Each objFile In colFiles

WScript.Echo objFile.Name, objFile.Size

Next

Секция заголовка

В секции заголовка файла Listfiles.vbs располагаются обычные команды Option Explicit и On Error Resume Next. Они предназначены для объявления каждой используемой переменной и обеспечения базовых функций обработки ошибок, соответственно. Далее объявляются пять переменных, используемых в сценарии. Описание переменных приведено в табл. 1.

Табл. 1. Переменные, используемые в Listfiles.vbs

Имя переменной

Предназначение

FolderPath

Определяет папку, в которой сценарий будет производить поиск.

objFSO

Создает FileSystemObject.

objFolder

Содержит подключение к папке с использованием переменной FolderPath и метода GetFolder объекта FileSystemObject.

colFiles

Содержит набор файлов, возвращаемых командой Files.

objFile

Содержит отдельные файлы при итерации по на­бору файлов посредством конструкции For Each.

Секция обращений

Секция обращений сценария Listfiles.vbs отличается от некоторых предыдущих сценариев, рассмотренных в данной книге, так как в этом сценарии происходит подключение к FileSystemObject, позволяющее работать с файлами и папками. Кроме того, определяется переменная FolderPath, объявленная в секции заголовка. Переменная FolderPath используется для упрощения модификации сценария в будущем. Посредством изменения пути, записанного в переменную FolderPath, сценарий может выводить список файлов на любом компьютере. Кроме того, FolderPath обеспечивает высокую гибкость сценария. Внеся небольшие изменения, можно адаптировать сценарий Listfiles.vbs к работе с командной строкой или к поиску значения FolderPath посредством считывания списка путей из текстового файла.

ObjFSO используется для хранения ссылки, возвращаемой командой CreateObject. С помощью команды CreateObject("Scripting.FileSystemObject") можно работать с файловой системой и создать перечень всех фалов в папке.

Папка, для файлов которой составляется перечень, определяется методом GetFolder. Строка кода objFSO.GetFoIder(FolderPath) приравнивается к objFolder, т.е. к переменной, используемой для адресации папки, определенной в переменной FolderPath.

После того как установлен контакт с папкой, с помощью команды Files формируется список файлов, находящихся в папке. Список файлов присваивается переменной colFiles с помощью следующей строки: Set colFiles = objFolder.Files. Секция обращений выглядит следующим образом:

FolderPath = "C:\scriptingBook\BookScripts_VbScripf”

Set objFSO = CreateObject(“Scripting.FileSystemObject")

Set objFolder = objFSO.GetFolder(FolderPath)

Set colFiles = objFolder.Files

Рабочая секция и секция вывода информации

В рабочей секции и секции вывода информации сценария Listfiles.vbs исользуется цикл For Each...Next для обработки набора файлов, возвращаемых командой Files в секции обращений сценария. Команда WScript.Echo .-пользуется для отображения имени файла и размера файла:

For Each objFile In colFiles

WScript.Echo objFile.Name, objFile.Size Next

Свойства файла

Name и Size (используются в указанной выше команде WScriptEcho - лишь два свойства файла, которые можно отобразить с помощью FileSystemObject Свойство файла описывает такие аспекты файла как дата его создания, дата последнего доступа, дата последнего изменения, путь, размер и тип файла. Опытный сетевой администратор может выделить множество различных свойств файлов, которые можно использовать как для обеспечения безопасности, так и для управления пользовательскими данными. К примеру, как видно из следующего кода, можно добавить в сценарий Listfiles.vbs несколько строк для получения дополнительных данных; в нашем случае это дата создания и изменения файла. Константа vbTab облегчает считывание выведенных данных. Завершенный сценарий записан на приложенном к книге компакт-диске в файле ListfilesExtProperties.vbs. В сценарий были добавлены следующие строки:

WScript.Echo vbTab & "created:" & objFile.DateCreated

WScript.Echo vbTab & "modified:" & objFile.DateLastModified

Аналогичным образом можно получать информацию из других свойств файлов. В табл. 2 представлены все доступные свойства файлов.

Табл. 2. Свойства файлов

Свойство

Предназначение

Attributes

Представление атрибутов файлов, таких как «только чтение» и «скрытый файл», реализованное побитовым маскированием

DateCreated

Дата создания файла

DateLastAccessed

Дата последнего доступа к файлу

DateLastModified

Дата последнего изменения файла

Drive

Буква устройства с двоеточием, представляющая диск, на котором находится файл (например, С:)

Name

Имя файла, не включающее путь (например, ListFiles.vbs). В имя файла включено расширение файла

ParentFolder

Папка, в которой находится файл (не включая подпапки). К примеру, родительской папкой C:\windows\system32\logfile.txt является папка Windows

Path

Полный путь к файлу (например, C:\windows\system32\logfile.txt)

ShortName

Имя файла версии 8.3 (формат MS-DOS). Пример: MyLongFileName.txt would become MyLong~l.txt

ShortPath

Путь версии 8.3 (формат MS-DOS). Например, C:\MyLongPath\MyLongFileName.txt можно представить как C:\MyLong~l\MyLong-l.txt

Size

Размер файла в байтах

Type

Тип файла, согласно реестру. Например, файл

.doc является документом Microsoft Word