gpt4 book ai didi

C# directory.getfiles内存帮助

转载 作者:太空狗 更新时间:2023-10-29 22:10:06 24 4
gpt4 key购买 nike

这是我使用的代码:

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));
}
}

此代码将在用户指定目录中的所有文件中搜索任何 txt 文件。这些目录有时包含 200 万个文件。

在该进程运行时对其进行监控,我发现它的内存使用量攀升至 800MB。有没有办法可以保持这个过程的速度并限制它使用的内存?或者让它读取并转储并继续?哈希表?任何想法都会很棒。

最佳答案

Directory.GetFiles 真的很糟糕。如果你可以使用 .NET 4.0,你应该考虑使用 Directory.EnumerateFiles .来自文档:

The EnumerateFiles and GetFiles methods differ as follows: When you use EnumerateFiles, you can start enumerating the collection of names before the whole collection is returned; when you use GetFiles, you must wait for the whole array of names to be returned before you can access the array. Therefore, when you are working with many files and directories, EnumerateFiles can be more efficient.

关于C# directory.getfiles内存帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1970603/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com