NTFS - 按创建/修改日期查找文件的最快方法
给定:
- NTFS 卷
- 文件夹路径
- 某个日期时间值 - 让我们称之为 $date
什么是用简单的方式搜索所有文件的最快方法
("last modification date" > $date) or ("creation date" > $date)
我想搜索所有添加或修改的文件。
出于性能原因,我不想对所有子文件夹进行递归爬网并读取每个文件属性。
出于技术原因(即 UAC、NTFS 文档),我想避免解析 \\.\$mft 文件
是否有一些 Windows API 允许我以这种方式进行搜索?
编辑:还有一个限制:
出于维护原因,我不想依赖索引服务。
Given:
- NTFS volume
- folder path
- some date time value - lets call it $date
What is the fastest way to search for all files with
("last modification date" > $date) or ("creation date" > $date)
Simply I want to search for all added or modified files.
For performance reasons I don't want to do recursive crawl of all subfolders and read every file attributes.
For technical reasons (i.e. UAC, NTFS documentation) I would like to avoid parsing \\.\$mft file
Is there some Windows API that will allow me to do search in that way?
Edit: One more constraint:
For maintenance reasons I don't want to be dependant on indexing service.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我可以肯定地说,鉴于上述问题,没有其他现实的选择。 FindFirst 等人没有过滤机制。如果您一直关注美国海军杂志,可能还有一些余地,但除此之外,就没有了。
I can say with certainty that there is no other realistic option given the problem as stated. FindFirst et al do not have a filtering mechanism. If you were keeping up with the USN journal, there might be some leeway, but otherwise, no.
如果 Windows 索引服务已打开,并且所需的文件已建立索引,则可以使用 查询 API。
If the windows indexing service is turned on, and the files you want are indexed, you quickly find your files using the query api.