Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Работа со списками файлов
Мы познакомимся с практическим применением списков дисков, каталогов и файлов на примере проекта 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 каждого элемента код синхронизации.
|