我们有一个相当大的磁盘阵列,上面有大约2-3百万个XML文件。磁盘使用NTFS格式化,我们希望使用通配符搜索文件系统。所以* SomePartOfTheFilename *之类的东西就是典型的搜索查询。
我们正在使用.Net并且发现使用DirectoryInfo看起来很慢。
DirectoryInfo directoryInfo = new DirectoryInfo(directory);
List<FileInfo> fileInfos = directoryInfo.GetFiles(searchString, SearchOption.AllDirectories).ToList();
使用循环和递归也很慢。
我们可以使用较低级别的API调用来直接搜索NTFS索引吗?
使用命令行中的dir * SomePartOfTheFilename * / s几乎是即时的。那里有什么东西可以利用吗?
答案 0 :(得分:1)
我不确定您是否可以使用索引服务,但它可能对您要做的事情很方便:
http://msdn.microsoft.com/en-us/library/ee805985%28VS.85%29.aspx
http://www.codeproject.com/KB/database/Indexing_Service_HOW-TO.aspx
它允许您针对计算机上文件的NTFS索引创建复杂查询。
答案 1 :(得分:1)