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

Мы познакомимся с практическим применением списков дисков, каталогов и файлов на примере проекта WinSeek.vbp. Эта программа просматривает текущий каталог текущего диска и ищет в нем файлы по заданному шаблону (например, файлы с расширением.AVI, как показано на рис. 3.15).

1. Загрузите и запустите проект WinSeek, дважды щелкнув на имени файла WinSeek. vbp в подкаталоге \MSDN98\98vs\1033\Samples\VB98\FileCtls\.

 

 

Рис. 3.15. Приложение WinSeek

 

2. Выберите в списке дисков диск С:, если он не выбран по умолчанию.

3. В списке каталогов выберите корневой каталог. Вы должны оказаться в каталоге С:\.

4. В поле Критерий поиска введите шаблон для поиска файлов нужного типа (например, *.AVI). Символ «звездочка» означает, что будут найдены все файлы расширением.AVI.

5. Нажмите кнопку Search и проследите за тем, как WinSeek выводит найденные файлы. Результат поиска будет похож на рис. 3.16.

 

 

Рис. 3.16. Результаты выполнения WinSeek

 

Закончив эксперименты с приложением WinSeek, завершите его командой Run End из меню Visual Basic. Дважды щелкните на форме frmWinSeek, чтобы открыть окно программы. Нас интересуют процедуры Change для списков drvList и dirList. Начнем с процедуры drvList_Change:

 

Private Sub drvList_Change()

On Error GoTo DriveHandler

dirList.Path - drvList.Drive

Exit Sub

 

DriveHandler:

drvList.Drive = dirList.Path

Exit Sub

End Sub

 

Прежде всего, в этом фрагменте бросается в глаза оператор On Error. Из всех трех элементов ошибка с наибольшей вероятностью может возникнуть именно в списке дисков. Причина заключается в том, что пользователь может выбрать флоппи-дисковод, в который не была вставлена дискета, — в этом случае возникает ошибка. Перехватив ее, программа может спокойно продолжить свою работу. Кроме того, обратите внимание на то, что программа инициирует событие Change списка каталогов, изменяя значение свойства Path. Это, в свою очередь, приводит к возникновению события Change в списке файлов. Происходящее отчасти напоминает «принцип домино» — вы инициируете первое событие, оно инициирует следующее, и так далее по цепочке. Как видно из следующего фрагмента, процедура события Change списка каталогов изменяет путь списка файлов.

 

Private Sub DirList_Change()

' Обновить список файлов в соответствии _

' со списком каталогов

filList.Path = dirList.Path End Sub

 

Списки дисков, каталогов и файлов почти всегда используются вместе. Тем не менее в отдельных случаях вам может понадобиться лишь один из этих элементов. При совместной работе необходимо включить в процедуру события Change каждого элемента код синхронизации.

 


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: