Как подключить библиотеку DLL ? |
Работа с устройствами, папками, файлами
Элементы управления DriveListBox, DirListBox и FileListBox
Для работы с деревом файлов используйте элементы управления DriveListBox, DirListBox и FileListBox панели элементов управления (рис. 3.1).
Имеется возможность после старта проекта выбрать требуемый объект, например файл каталога некоторого дискового устройства для дальнейшей работы с ним. Рассмотрим кратко некоторые параметры этих элементов управления:
- DriveListBox (рис. 3.1 вверху слева). Имена дисковых устройств (свойство Name) в соответствии с соглашением по коду начинаются с drv; важным свойством является Drive, оно доступно только во время выполнения проекта и определяет выбранное пользователем дисковое устройство. Из имеющихся событий представляет интерес Change, происходящее при выборе пользователем нового дискового устройства,
- DirListBox (рис. 3.1 в середине слева). При выборе нового дискового устройства в поле элемента управления DirListBox выводится список соответствующих каталогов. Имена каталогов в соответствии с соглашением по коду начинаются с dir. Свойство Path, доступное во время выполнения, задает/возвращает путь к каталогу, выбранному пользователем из списка. Списки обновляются в процедуре события Change,
- FileListBox (рис. 3.1 внизу слева). В списках файлов перечисляются файлы текущего каталога, откуда их можно выбрать. Имеется около 50 свойств. Свойство Path доступно только во время выполнения, его можно задать и возвратить. Свойства Hidden, Normal, ReadOnly, System, Archive дают возможность вывести в список только требуемые файлы. Имеется около 20 событий. Часто в процедуре CommandК_Click () выполняются действия, связанные со значениями Path и FileName списка файлов.
Чтобы обеспечить совместное функционирование элементов управления DriveListBox, DirListBox и FileListBox после размещения их на форме, нужно создать синхронизирующие их работу процедуры:
Private Sub Drive1_Change() Dir1.Path = Drive1.Drive End Sub Private Sub Dir1_Change() File1.Path = Dir1.Path End Sub Для вывода содержимого каталога после его маркировки и нажатия клавиши Ввод нужно ввести код: Private Sub Dir1_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then Dir1.Path = Dir1.List(Dir1.ListIndex) End Sub
Здесь свойство ListIndex характеризует маркированную пользователем строку, см. ниже.
В распоряжение пользователя предоставлен ряд функций, некоторые из них приведены ниже.
- ChDrive имя дискового устройства - перейти на другое дисковое устройство,
- ChDir путь - перейти в другой каталог,
- MkDir путь - создать каталог,
- RmDir путь - удалить каталог,
- FileCopy источник, цель - копировать файл.
- SetAttr - установить атрибуты файла/каталога; допускается комбинация атрибутов.
Информация об атрибутах дана в табл. 3.1
Значение атрибута | Имя константы | Пояснение |
0 | vbNormal | Свободный доступ |
1 | vbReadOnly | Только для чтения |
2 | vbHidden | Скрытый |
4 | vbSystem | Системный |
8 | vbVolume | Дисковое устройство |
16 | vbDirectory | Каталог |
32 | vbArchive | Архив |
Практическая работа 17. Элементы управления DriveListBox, DirListBox и FileListBox
Для приобретения навыков работы с файловой системой выполнить следующее:
- Создать на форме элементы управления DriveListBox, DirListBox и FileListBox, рис. 3.1, синхронизировать работу объектов, см. соответствующие процедуры, приведенные выше,
- создать на форме командные кнопки:
- Path для процедуры вывода пути и меню в поля меток, см. код и рис. 3.1,
- Copy NET14.ICO для процедуры копирования файла (здесь - файла NET14.ICO) с заданием имени файла в процедуре и выводом данных в поле метки, см. код и рис. 3.1,
- Copy File1 для процедуры копирования файла (здесь - файла File1) с заданием файла путем маркировки его имени в списке файлов FileListBox и выводом данных в поле метки, см. код и рис. 3.1,
- Make Directory для создания каталогов, см. код и рис. 3.1,
- ввести код данный ниже:
' синхронизация работы элементов управления и ' обеспечение вывода содержимого каталогов при ' нажатии клавиши Enter Private Sub Drive1_Change() Dir1.Path = Drive1.Drive End Sub Private Sub Dir1_Change() File1.Path = Dir1.Path End Sub Private Sub Dir1_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then Dir1.Path = Dir1.List(Dir1.ListIndex) End Sub Private Sub Command1_Click() ' вывод пути и имени файла Label1 = Drive1: Label2 = Dir1: Label3 = File1 End Sub ' процедура многократного копирования файла ' последовательным нажатием командной кнопки Private Sub Command3_Click() Static i As Integer FileCopy "A:\Net14.ICO", "A:\FileN" ' вывод имени копируемого файла и числа копирований Label4 = File1 & " Copy " & i +1 i = i + 1 End Sub ' процедура копирования файла путём маркировки файла в ' списке FileListBox и последующего старта ' соответствующей процедуры Private Sub Command4_Click() Static i As Integer Print File1: FileCopy File1, "FileN": Label5 = File1 & " Copy " & i + 1 i = i + 1 End Sub ' создание каталогов Private Sub Command2_Click() MkDir а1: MkDir а2 End Sub
- стартовать проект и затем:
- в списке DriveListBox выбрать, например, дисковое устройство А:. Маркировкой имени каталога и последовательным нажатием клавиши Enter вывести на экран содержимое. Маркировать некоторый файл (здесь - NET14.ICO), сделать щелчок на кнопке Path,
- сделать щелчок на кнопке Copy NET14.ICO,
- сделать щелчок на кнопке Copy File1,
- сделать щелчок на кнопке Make Directory.