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

本文关键字:类型 其他 任何 gif Directory 何使用 GetFiles 获取 | 更新日期: 2023-09-27 18:20:58

我正在尝试按扩展名筛选文件(特别是".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);
        }

如果我像Directory.GetFiles("*.gif")一样给GetFiles()添加过滤器,我会得到异常:

序列不包含任何元素。

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

您有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实例方法将过滤器作为单个参数:

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

GetFiles:上使用搜索模式重载

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