2015-11-08 76 views
0

我試圖通過擴展名篩選文件(特別是「.gif」),但由於某種原因,GetFiles方法找不到任何文件(即使文件夾中確實存在該類型的文件)。如何使用Directory.GetFiles獲取gif類型(或任何其他類型)?

該代碼給出了所有文件的列表。

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")我會得到異常:

序列不包含任何元素。

回答

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實例方法採用濾波器作爲單個參數:

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

使用search pattern過載上GetFiles

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