0

我想我曾经看到可以在代码中使用 Windows 搜索功能的功能。可以使用 sql 查询搜索文件(例如“从文件存储中选择文件名,其中目录 = 'c:\somedir' 和 ('.doc','.txt','.me') 和 datemodified >= '2009-01-01 00:00:00'"

无论如何,即使没有办法通过查询来做到这一点,Windows API 中是否有任何功能或任何简单的代码来完成这种类型的事情?

这似乎是一件显而易见的事情,因为没有一种简单的方法可以做到这一点。

我有一个函数可以查找目录中的所有文件(带有子目录),但它基本上是愚蠢的。它无法使用通配符进行搜索,也无法使用其他条件进行搜索,例如比给定日期新的日期。

如果可能的话,我不想下载任何第 3 方共享软件库来执行此操作。我在 vista 中使用 C++ builder,如果有任何仅适用于 vista 的功能,那没关系。

4

3 回答 3

2

实际上,您可以使用 FindFirstFileEx() 来实现您的搜索条件。不幸的是,大多数时候你必须自己实现这个..这并不难..

基本上,您可以检查WIN32_FIND_DATA结构中要搜索的条件。例如,如果您只想查找创建日期大于某个日期的文件,您将根据需要检查 WIN32_FIND_DATA 结构成员 ftCreationTime 还是 ftLastWriteTime。

于 2009-02-05T04:21:01.237 回答
0

您可以使用FindFirstFileEx()使用通配符和属性进行搜索。

于 2009-02-04T20:09:26.783 回答
-1

自 90 年代以来,C 代码已在 Google Groups 上发布了数千次(news://comp.os.ms-windows.programmer.win32 等)

于 2009-02-05T06:28:40.497 回答