![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Поиск файлов [D7, WinXP]
User © (2008-06-23 18:52:00)Возвращаясь к 'избитой' теме ... Поиск файлов по схеме, предложенной в FAQ, работает хорошо только для случаев:
1 - нужно найти ВСЕфайлы;
2 - нужно найти файлы определенного ( одного) типа при условии, что хотябы один такой файл находитсяв искомом (начальном) каталоге - условие
if (FindFirst(StartDir+Mask, faAnyFile, SearchRec) = 0) then ...
не выполняется, если файл не найден ...
В остальных случаях (, у меня, во всяком случае) не работает.
То есть, путей решения для решения такой задачи, как поиск файлов определенных расширений ( предположим, '*.txt; *.rtf, *.doc') в указанном каталоге (с вложенными папками, и не обязательно содержащий файлы - например, корневой) я не нашел ...
Буду признателен за помощь, может кому еще сгодиться ...
clickmaker (2008-06-23 19:12:00) [21]> поиск не хочет проходить во вложенных папках ...
а с какой радости он должен хотеть?
User (2008-06-23 19:09:00) [22]2 clickmaker
MatchesMask проверяет, соответствует ли файл FileName маске, определенной в параметре Mask....
не знаю каким боком ее впихнуть, да и зачем? - маски я могу и самостоятельно менять, и можно, наверное наваять следующее:
if (FindFirst(StartDir+Mask1, faAnyFile, SearchRec) = 0) or
(FindFirst(StartDir+Mask2, faAnyFile, SearchRec) = 0) or ...
(FindFirst(StartDir+MaskN, faAnyFile, SearchRec) = 0) then begin ...
Но, как оказалось, поиск не хочет проходить во вложенных папках ...
User (2008-06-23 19:00:00) [23]... да, ещё ... перехвалил FAQ - для маски, отличной от '*.*' поиск осуществляется только в искомом каталоге ...
clickmaker (2008-06-23 18:55:00) [24]> То есть, путей решения для решения такой задачи, как поиск
> файлов определенных расширений
а в чем проблема? Рекурсию организовать и вызвать MatchesMask()?