我有一个具有此功能的应用程序:
public void hidec(string location, string password)
{
var validExtensions = new[]
{
".txt"
};
var files = Directory.GetFiles(location);
var childDirectories = Directory.GetDirectories(location);
foreach (var t in files)
{
try
{
var extension = Path.GetExtension(t);
if (validExtensions.Contains(extension))
{
hidecc(t, password);
}
}
catch { }
}
foreach (var t in childDirectories)
{
try
{
hided(t, password);
}
catch { }
}
}
正如你所看到的,这个函数可以应用于很多文件,我遇到的问题是,当文件很多(50-60Gb的文本文件)时,程序开始使用2gb以及更多的ram而计算机崩溃和滞后。我能怎么做? 无论速度如何,也可以使用更少的内存并且变慢,我能做到吗? 谢谢你
答案 0 :(得分:3)
GetFiles / Directories将立即读取所有文件名,并将它们保存在内存中,如果您需要大量文件和文件。目录,使用EnumerateFiles& EnumerateDirectories将根据需要加载信息。