назад | содержание | вперед
Работа с устройствами и папками
С помощью 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 списка папок обновляется по двойному щелчку мыши.
назад | содержание | вперед