2009-02-04 10 views
0

Я думаю, что однажды увидел, что можно использовать функциональные возможности функции поиска окон в коде. То, что можно было искать файлы с помощью SQL-запроса (что-то вроде «select filename from filestore, где directory = 'c: \ somedir' и extention in ('.doc', '. Txt', '. Me') и datemodified > = '2009-01-01 00:00:00' 'Windows API способ поиска подпапок с подстановочными знаками и другими критериями на C++?

В любом случае, даже если нет способа сделать это с запросом, есть ли какая-либо функциональность в Windows API или любой простой код для выполнения именно этот тип вещи?

кажется такой очевидной вещи для не быть простой способ сделать это.

у меня есть функция, которая находит все файлы в директории (с подразделами), но это в основном он не может искать с помощью подстановочных знаков и не может выполнять поиск по другим критериям, таким как дата более поздняя n заданная дата.

Если возможно, я не хочу загружать сторонние библиотеки условно-бесплатных программ для этого. Я использую C++ Builder в Vista, и если для этого есть какие-то возможности только для Vista, тогда все в порядке.

ответ

2

На самом деле вы можете использовать FindFirstFileEx() для реализации ваших критериев поиска. К сожалению, большую часть времени вы должны выполнить это самостоятельно. Это не слишком сложно.

В принципе, вы можете проверить структуру WIN32_FIND_DATA по критериям, которые вы хотите найти. Например, если вы хотите найти только файлы с датой создания, превышающей определенную дату, вы должны проверить, является ли член структуры WIN32_FIND_DATA ftCreationTime или ftLastWriteTime, в зависимости от ваших потребностей.

0

Вы можете использовать FindFirstFileEx() для поиска с подстановочными знаками и атрибутами.

+0

Perfect. Я попробую, когда вернусь домой (к моему коду) – MrVimes

+0

OK Я попробовал. Кажется, он не может использоваться для поиска подстановочных знаков или любых других критериев поиска. Это не лучше, чем «findfirst» или «findfirstfile». Параметр для указания критериев говорит «зарезервирован для будущего использования» и должен быть нулевым. функция dnt wrk nyw gn sk nw q. n mr spc fr cmt. – MrVimes

+0

Да, его можно использовать для поиска с помощью подстановочных знаков. Вы должны делать что-то неправильно, если оно не работает. – Stefan

-1

Код C был опубликован тысячи раз в группах Google с 90-х годов (news: //comp.os.ms-windows.programmer.win32 и другие)