如何使用Directory.GetFiles只获取gif类型(或任何其他类型)?

时间:2015-11-08 11:45:55

标签: c# .net

我正在尝试按扩展名筛选文件(特别是“.gif”)但由于某种原因GetFiles方法找不到任何文件(即使文件夹中肯定有该类型的文件)

此代码为我提供了所有文件的列表。

private void displaylastanimatedgif()
        {
            var directory = new DirectoryInfo(animatedgifsdirectory);
            var myFile = (from f in directory.GetFiles()
                          orderby f.LastWriteTime descending
                          select f).First();
            if (myFile != null)
                pictureBoxImage(myFile.FullName);
            listBox1.Items.Add(outputfile);
        }

如果我向GetFiles()添加过滤器,例如Directory.GetFiles("*.gif"),我将获得例外:

  

序列不包含任何元素。

2 个答案:

答案 0 :(得分:3)

你有3个版本的" GetFiles"方法。其中2个包含过滤选项: https://msdn.microsoft.com/en-us/library/system.io.directory.getfiles%28v=vs.110%29.aspx

您使用的版本接受"路径"。不是过滤器。

  • 选项1 Directory.GetFiles有两个参数:

    var files = Directory.GetFiles(animatedgifsdirectory, "*.gif");
    
  • 选项2 DirectoryInfo.GetFiles实例方法将filter作为单个参数:

    var directory = new DirectoryInfo(animatedgifsdirectory);
    var files = directory.GetFiles(animatedgifsdirectory, "*.gif");
    

答案 1 :(得分:1)

使用GetFiles上的search pattern重载:

System.IO.Directory.GetFiles(@"C:\Windows", "*.gif");