我有大量的目录,我想尽快读取所有文件.我的意思是,快速没有DirectoryInfo.GetFiles,而是"从磁盘低级别获取集群".
当然,.NET 2.0,c#
类似的问题在这里,但这种方法没有任何好处:
有人建议在FindFirst/FindNext上使用pInvoke.有人试过这个并且能够分享结果吗?
这是我正在使用的代码:
using (StreamWriter output = new StreamWriter(Path.Combine(masterdestination, "Master.txt")))
{
string masterfolders = sourcefolder1;
string[] filess = Directory.GetFiles(masterfolders, "*.txt");
foreach (string file in filess)
{
output.WriteLine(Path.GetFileName(file));
}
}
Run Code Online (Sandbox Code Playgroud)
此代码将搜索用户指定目录中任何txt文件的所有文件.这些目录有时包含2百万个文件.
在它运行时监视这个过程我已经看到它爬升到800MB的内存使用量.有没有办法可以保持这个过程的速度并限制它使用的内存?或者让它读取并转储并继续?哈希表?任何想法都会很棒.