Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何获取目录中的文件列表_C#_File Io - Fatal编程技术网

C# 如何获取目录中的文件列表

C# 如何获取目录中的文件列表,c#,file-io,C#,File Io,我很难计算文件夹中文本文件的数量。我使用这些命令来获取路径。现在我想计算文件夹中文本文件的数量 FolderBrowserDialog fbd = new FolderBrowserDialog(); DialogResult result = fbd.ShowDialog(); string files = fbd.SelectedPath; textBox2.Text = files; 只需使用目录类 string [] fileEntries = Directory.GetFile

我很难计算文件夹中文本文件的数量。我使用这些命令来获取路径。现在我想计算文件夹中文本文件的数量

FolderBrowserDialog fbd = new FolderBrowserDialog();
DialogResult result = fbd.ShowDialog();

string files = fbd.SelectedPath;
textBox2.Text = files;

只需使用目录类

  string [] fileEntries = Directory.GetFiles(fbd.SelectedPath,"*.txt");
  textBox2.Text = fileEntries.Length.ToString() ;

如果您只想获得txt文件的数量,请使用以下方法:

int count = Directory.GetFiles(fbd.SelectedPath, "*.txt").Length;
您还可以使用第三个参数searchOption,它使用
searchOption
枚举


根据我的理解,您可以指定
AllDirectories
TopDirectoryOnly

GetFiles
返回一个数组,因此使用
Length
代替
Count()
Count()
是一种LINQ扩展方法,在处理数组时有效,因为它们实现了
IEnumerable
。是的,但IEnumerable没有跟踪项数的属性,因此理论上它强制转换为IEnumerable并重复手动计数的每个项,而数组已经跟踪它。换句话说:直接使用
Length
更快,因为至少它可以防止类型检查和强制转换。是的,
Count()
几乎肯定比
Length
更昂贵。为了提供最佳解决方案,我将相应地更新我的答案。