c# - 从目录中获取文件数而不在 C# 中枚举文件

标签 c# file directory

我正在使用 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/

相关文章:

c# - 禁用字段的 MVC "must be a number"数据类型验证

c# - 如何使用 Math.Round 舍入精确的 double 值

python - 当文件已存在时在管理面板中显示消息

python - 如何在Python中删除文件中的重复行

javascript - 使用 javascript 从 iOS 文档文件夹中读取 JSON 文件

batch-file - 如何保存包含俄语或中文字符的文件的目录列表

c# - Rhino Mock Expect() 方法触发对预期函数的调用

c# - 正确取消异步操作并再次触发

php - file_put_contents php 权限

java - (Java) Java 找不到我的图像文件