назад | содержание | вперед

Работа с устройствами и папками

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

1. Создайте новый стандартный проект. Для этого в меню File (Файл) выберите команду New Project (Создать новый проект) и в окне выбора типа проекта дважды щелкните мышью на значке Standard EXE.

2. Присвойте проекту имя MyFSO. Для этого откройте окно свойств проекта, выбрав команду Project1 Properties (Свойства Project 1) меню Project (Проект).

3. Присвойте форме проекта имя frmFormAboutDrive. В свойство Caption формы введите заголовок Сведения об устройстве.

4. Разместите в форме объект типа DriveListBox, дважды нажав кнопку DriveListBox на панели элементов управления. Используя свойство Name, присвойте объекту имя drvSelectDrive.

5. Добавьте в форму элемент управления типа commandButton. Назовите созданную кнопку cbStart.

Созданное приложение показано рис. 9.11.

Рис. 9.11. Приложение для изучения свойств класса Drive

6. Откройте окно редактора и введите приведенный ниже код:

Private Sub GetInfoAboutDrive()

Dim NewFSO As New FileSystemObject, Driver As Drive

Dim sInfoDrv(l To 4) As String, sSayAboutInfo As String

Set Driver = New

FSO.GetDrive(NewFSO.GetDriveName(drvSelectDrive.Drive))

If Driver.IsReady = True Then

sInfoDrv(l) = Driver.SerialNumber

sInfoDrv(2) = Driver.TotalSize / 1048576

sInfoDrv(3) = Driver.FreeSpace / 1048576

sInfoDrv(4) = Driver.FileSystem

sSayAboutInfo = "№ " + sInfoDrv(1) + Chr(10)

sSayAboutInfo = sSayAboutInfo + "Всего: " + s!nfoDrv(2) + _

" МБайт" + Chr(10)

sSayAboutInfo = sSayAboutInfo + "Свободно: " + slnfo0rv(3) + _

" МБайт " + Chr(10)

sSayAboutInfo = sSayAboutInfo + "Файловая система: " + _

sInfoDrv(4) + Chr(10)

Else

sSayAboutInfo = "Устройство не готово" + Chr(10)

End If

'Вывод в окно Immediate

Debug.Print sSayAboutInfo

'Вывод в окно сообщения

MsgBox sSayAboutInfo,, "Сведения об устройстве"

End Sub

Private Sub cbStart_Click ()

GetInfoAboutDrive

End Sub

7. Запустите приложение на выполнение. При нажатии кнопки, расположенной в форме, в окно сообщения выдаются сведения о выбранном устройстве. Одновременно информация выдается в окно Immediate (Непосредственное выполнение).

Замечание

Необходимо напомнить, что для работы с FSO следует подключить к проекту библиотеку Microsoft Scripting Runtime, используя окно подключения ссылок References (Ссылки).

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

Для работы с папками используются объекты двух классов: Folder или FileSystemObject.

Рассмотрим работу с папками на примере небольшого приложения. Выполните следующие действия:

1. Создайте новый стандартный проект. Для этого в меню File (Файл) выберите команду New Project (Создать новый проект) и в окне выбора типа проекта дважды щелкните мышью на значке Standard EXE.

2. Присвойте проекту имя MyFSOAndFolder. Для этого откройте окно свойств проекта, выбрав команду Projecti Properties (Свойства Project!) меню Project (Проект).

3. Присвойте форме проекта имя frmFormFolder. В свойство caption формы введите заголовок Работа с папками.

4. Разместите в форме объект типа DriveListBox, дважды щелкнув мышью кнопку DriveListBox на панели элементов управления. Используя свойство Name, Присвойте объекту ИМЯ drvSelectDrive.

5. Добавьте в форму объект типа DirListBox для поиска папок. Для этого дважды щелкните мышью кнопку DirListBox на панели элементов управления. Используя свойство Name, присвойте объекту имя dirFolders.

6. Добавьте в форму поле типа TextBox и назовите его txtNameFolder. Для пояснения расположите над этим полем метку Label. Размер (длина) метки должен быть равен размеру поля txtNameFolder. Значение свойства Alignment (Выравнивание) метки установите равным 2-Center.

7. Добавьте в форму три кнопки типа CommandButton. Назовите эти кнопки cbCreate, cbDelete, cbRename и, используя свойство Caption, разместите на них, соответственно, надписи Создать, Удалить, Переименовать.

Созданное приложение показано на рис. 9.12.

Рис. 9.12. Приложение для изучения работы с папками

8. Откройте окно редактора и введите приведенный ниже код:

Dim NewFSO As New FileSystemObject, Folder As Folder

Dim sNameFolder As String

Private Sub cbCreate_Click()

' Создание папки

If txtNameFolder <> "" Then

sNameFolder = dirFolders.Path

Set Folder = NewFSO.GetFolder(sNameFolder)

If Folder.IsRootFolder = True Then

MsgBox sSayAboutInfo,, "Корневая папка"

sNameFolder = dirFolders.Path + txtNameFolder.Text

Else

sNameFolder = dirFolders.Path + "\" + txtNameFolder.Text

End If

NewFSO.CreateFolder (sNameFolder)

End If

End Sub

Private Sub cbDelete_Click ()

' Удаление папки

sNameFolder = dirFolders.Path

Set Folder = NewFSO.GetFolder(sNameFolder)

NewFSO.DeleteFolder (sNameFolder)

End Sub

Private Sub cbRename_Click()

' Переименование папки

sNameFolder = dirFolders.Path

Set Folder = NewFSO.GetFolder(sNameFolder)

Folder.Name = txtNameFolder.Text

End Sub

Private Sub drvSelectDrive Change()

dirFolders.Path = drvSelectDrive.Drive

End Sub

9. Запустите приложение на выполнение. Обратите внимание на синхронизацию Объектов drvSelectDrive (Список устройств) И dirFolders (Список папок), которая выполняется по событию change списка устройств. При работе с примером необходимо помнить, что выбор значения в списке выполняется двойным щелчком мыши, то есть свойство path списка папок обновляется по двойному щелчку мыши.

назад | содержание | вперед