5 c#
这是我正在使用的代码:
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的内存使用量.有没有办法可以保持这个过程的速度并限制它使用的内存?或者让它读取并转储并继续?哈希表?任何想法都会很棒.
Ric*_*dOD 14
Directory.GetFiles真的很糟糕.如果您可以使用.NET 4.0,那么您应该考虑使用Directory.EnumerateFiles.来自文档:
EnumerateFiles和GetFiles方法的不同之处如下:当您使用EnumerateFiles时,您可以在返回整个集合之前开始枚举名称集合; 当您使用GetFiles时,您必须等待返回整个名称数组,然后才能访问该数组.因此,当您使用许多文件和目录时,EnumerateFiles可以更高效.
| 归档时间: |
|
| 查看次数: |
2803 次 |
| 最近记录: |