我正在使用 Directory.EnumerateFiles()
和 Directory.GetFiles()
在 c# 中获取特定目录中的文件数。问题是这些方法很慢,因为它们枚举文件以达到计数目的。
如何在c#中不枚举文件的情况下获取目录中的文件数?
最佳答案
您必须枚举文件夹才能获取所有文件。
但是,您仍然可以做一些事情来提高性能。我建议您看一下那些基准测试(Get1 方法):
https://stackoverflow.com/a/17756559/3876750
根据基准测试,似乎以下方法提供了最佳性能:
private static int Get1(string myBaseDirectory)
{
DirectoryInfo dirInfo = new DirectoryInfo(myBaseDirectory);
return dirInfo.EnumerateDirectories()
.AsParallel()
.SelectMany(di => di.EnumerateFiles("*.*", SearchOption.AllDirectories))
.Count();
}
关于c# - 从目录中获取文件数而不在 C# 中枚举文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25239636/