我正在尝试按扩展名筛选文件(特别是“.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")
,我将获得例外:
序列不包含任何元素。
答案 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");