计算文件夹中的特定文件

时间:2015-04-20 14:40:32

标签: c# .net

private void button1_Click(object sender, EventArgs e) {
    DialogResult result = folderBrowserDialog1.ShowDialog();
    if (result == DialogResult.OK) {
        string[] files = Directory.GetFiles(folderBrowserDialog1.SelectedPath);
        MessageBox.Show("Files found: " + files.Length.ToString(), "Message");
    }
}

这会计算文件夹中的文件数。但我只需要计算文件夹中的特定文件.txt.mp3

3 个答案:

答案 0 :(得分:1)

DirectoryInfo di = new DirectoryInfo(@"C:/temp");

di.GetFiles("test?.txt").Length;

di.GetFiles("*.txt").Length;

答案 1 :(得分:0)

检查文件是否'扩展名在您指定的集合中:

 var validExts = new []{".txt", ".mp3"};

 string[] files = Directory.GetFiles(folderBrowserDialog1.SelectedPath)
            .Where(f => validExts.Contains(Path.GetExtension(f)))
            .ToArray();

答案 2 :(得分:0)

只需 union 不同的扩展程序:

String[] files = Directory.GetFiles(folderBrowserDialog1.SelectedPath, "*.txt")
          .Union(Directory.GetFiles(folderBrowserDialog1.SelectedPath, "*.mp3"))
          .ToArray();

您可以根据需要链接尽可能多的Union。如果您只想计算文件,则不必使用任何数组

private void button1_Click(object sender, EventArgs e) {
  if (folderBrowserDialog1.ShowDialog() == DialogResult.OK)
    MessageBox.Show(Directory.GetFiles(folderBrowserDialog1.SelectedPath, "*.txt")
             .Union(Directory.GetFiles(folderBrowserDialog1.SelectedPath, "*.mp3"))
             .Count(), 
      "Message")
}