Примеры работы с FSO
Автор Виталий Крячко   
06.02.2002 г.
Ну, во первых, традиционный вопрос - зачем? Ответ - новые методы системы FSO(File System Objects) расширяют и дополняют традиционные возможности VB. Как говорится, не API единым живет Visual Basic! В этой статье я хочу рассказать о применении нового метода работы с устройствами, который использует VB, и который заключается в использовании обьектно - ориентированного подхода. А простой пример использования будет понятен даже начинающим и убедит в полезности сомневающихся. Ну, во первых, традиционный вопрос - зачем? Ответ - новые методы системы FSO(File System Objects)расширяют и дополняют традиционные возможности VB. Как говорится, не API единым живет Visual Basic! В этой статье я хочу рассказать о применении нового метода работы с устройствами, который использует VB, и который заключается в использовании обьектно - ориентированного подхода. А простой пример использования будет понятен даже начинающим и убедит в полезности сомневающихся.

В систему файловых объектов FSO входит набор классов объектов с большим количеством методов. В этой статье я перечислю основные классы системы, но подробно рассмотрю методику использования класса Drive.

Для использования объектов FSO необходимо подключить к создаваемому проекту библиотеку Microsoft Scripting Runtime. Сделать это можно так: меню Project(Проект) открываем References(Ссылки), из доступных ссылок выбираем Microsoft Scripting Runtime, ставим напротив птичку и нажимаем OK. И все! Теперь перечислю основные классы объектов, которые входят в состав FSO:

Drive - класс для работы с устройствами системы, такими как жесткий диск, CD-ROM, логический диск и т.п.
Folder - класс для работы c папками: создание, удаление, чтение, установка атрибутов
Files- класс для работы c файлами: создание, удаление, чтение, установка атрибутов файлов
FileSystemObject - базовый класс системы, на основе которого построены другие классы
TextStream - Специальный класс для работы с текстовыми файлами

Итак, класс Drive. В этом классе собраны свойства для работы с устройствами файловой системы. Объекты данного класса содержат следующие свойства:

Имя
Описание
AvailableSpace Возвращает значение свободного пространства устройства, доступное пользователю
DriveLetter Возвращает буквенное обозначен6ие устройства
DriveType Возвращает тип устройства
FileSystem Возвращает тип файловой системы устройства
FreeSpace Возвращает общее свободное пространство
IsReady Указывает готовность устройства к работе. Может быть True - готово к работе и False - не готово к работе
Path Возвращает путь устройства, папки, файла
RootFolder Возвращает корневую папку указанного устройства
SerialNumber Возвращает числовой индикатор тома диска (серийный номер)
ShareName Возвращает сетевое имя указанного устройства
TotalSize Возвращает общий размер устройства в байтах
VolimeName Возвращает или устанавливает имя тома устройства

Использование системы FSO состоит из трех этапов:

1. Создание объекта системы FSO
2. Настройка требуемых методов объекта FSO
3. Настройка доступных свойств объекта FSO

Создать объект FSO можно объявлением переменной типа FSO:

Dim NewFSO As New FileSystemObject

Для создания объекта можно использовать следующий оператор:

Set NewFSO = CreateObject("Scripting.FileSystemObject")

В данном случае Scripting.FileSystemObject - это требуемый объект с указанием библиотеки.

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

1. Создаем новый стандартный проект и присваиваем ему имя MyFSO.
2. Подключите к создаваемому проекту библиотеку Microsoft Scripting Runtime.
3. Присваиваем форме проекта имя frmFormAboutDrive. В свойство Caption формы внесите заголовок Сведения об устройстве.
4. Разместите в форме объект типа DriveListBox и присвойте ему имя drvSelectDrive.
5. Добавьте в форму кнопку CommandButton и назовите её cbStart
6. Откройте окно редактора и введите следующий код:

Private Sub GetInfoAboutDrive()
Dim NewFSO As New FileSystemObject, Driver As Drive
'создать объект системы FSO можно обьявлением переменной типа FSO
Dim sInfoDrv(1 To 5) As String, sSayAboutInfo As String
Set Driver = NewFSO.GetDrive(NewFSO.GetDriveName(drvSelectDrive.Drive))
If Driver.IsReady = True Then
'проверяем готовность устройства к работе
sInfoDrv(1) = Driver.SerialNumber
'возвращает числовой индификатор тома дика
sInfoDrv(2) = Driver.TotalSize / 1048576
'общее пространство переводим из байт в Мбайты
sInfoDrv(3) = Driver.FreeSpace / 1048576
'свободное пространство, можно использовать Driver. AvailableSpace
sInfoDrv(4) = Driver.FileSystem
'тип файловой системы(FAT, NTFS, CDFS)
'формируем сообщение
sSayAboutInfo = "№ " & sInfoDrv(1) & Chr(10)
sSayAboutInfo = sSayAboutInfo & "Всего :" & sInfoDrv(2) & " Мбайт" & Chr(10)
sSayAboutInfo = sSayAboutInfo & "Свободно :" & sInfoDrv(3) & " Mбайт" & Chr(10)
sSayAboutInfo = sSayAboutInfo & " Файловая система : " & sInfoDrv(4) & Chr(10)
Else
'еслиDriver.IsReady = False
sSayAboutInfo = " Устройство не готово !" & Chr(10)
End If
MsgBox sSayAboutInfo, vbOKOnly, " Сведения об устройстве"
End Sub


Private Sub cbStart_Click()
GetInfoAboutDrive
End Sub


7. Запустите приложение на выполнение. При нажатии кнопки на форме в окно сообщения выдаются сведения о выбранном устройстве.
Работа с другими классами будет описана в последующих статьях.

Скачать пример