我需要以最快的方式搜索目录和子目录中的文件。文件数量超过140万。文件大小介于5到50 KB之间。每个文件夹包含5到10000个文件。
目前我正在使用:
foreach (string file in Directory.GetFiles(path, "*.*", SearchOption.AllDirectories))
{
if (file.Contains(searchkeyword))
{
string AnchorText = Path.GetFileNameWithoutExtension(file);
}
}
答案 0 :(得分:1)
最佳解决方案
我会add an index to that directory并使用Windows Search to find files in it。这里的优点不仅在于它不是您需要维护的代码,而且Windows索引服务还能够索引文件的内容(.doc,.pdf,.txt等)。
家庭成长解决方案
数据库内部的本地缓存(* Sql,Redis,Mongo,Lucene,无论你喜欢什么)。
FileSystemWatcher
到目录。当您需要搜索文件时,只需查询数据库。