2017-01-14 179 views
-4
string[] list = Directory.GetFiles(countriesMainPath + "\\" + currentDownloadCountry, "*.jpg"); 

但不僅gif我想指定它也將只包含名稱紅外文件。例如,我有文件名0infrared.gif和0visible.gif,我想獲得所有紅外文件。如何從目錄中獲取文件特定的文件名?

+1

您的意見說,你要'.gif'文件,但你的代碼說'.jpg'。你想要哪一個? – Abion47

回答

0
string partialName = "infrared"; 
DirectoryInfo dir = new DirectoryInfo(@"c:\"); 
FileInfo[] filesInDir = dir.GetFiles("*" + partialName + "*.*"); 
foreach (FileInfo foundFile in filesInDir) 
{ 
    string fullName = foundFile.FullName; 
    Console.WriteLine(fullName); 
}  
+0

這將獲得帶有「紅外線」的_all_文件,而不僅僅是'.jpg's或'.gif's。 – Abion47

+0

多數民衆贊成在什麼操作要 – Sajeetharan

+0

「不僅GIF我想指定***也***只有文件包含...」 – Abion47

-1

也許*infrared*.(jpg|gif)將工作

+0

「Directory.GetFiles」方法不支持管道字符作爲在兩個選項之間切換的方式。 – Abion47

1

這將讓你有紅外的所有文件的文件名和擴展名爲JPG

string[] list = Directory.GetFiles(countriesMainPath + "\\" + currentDownloadCountry, 
      "*infrared*.jpg"); 
1
string[] list = Directory.GetFiles(
    countriesMainPath + "\\" + currentDownloadCountry, 
    "*infrared*.*"); 

這將返回所有的文件都包含有紅外自己文件名。

+0

歡迎來到SO!閱讀[本文](http://stackoverflow.com/editing-help)瞭解如何使用代碼塊 –

1

我認爲這可能是你要找的。裁判:MSDN

public static string[] GetFiles(string path, string searchPattern, SearchOption searchOption) 
{ 
    string[] searchPatterns = searchPattern.Split('|'); 
    List<string> files = new List<string>(); 
    foreach (string sp in searchPatterns) 
     files.AddRange(System.IO.Directory.GetFiles(path, sp, searchOption)); 
    files.Sort(); 
    return files.ToArray(); 
} 

使用

var wantedImgs = GetFiles(
    dirYouWant, "*infrared*.jpg|*infrared*.gif", 
    earchOption.TopDirectoryOnly);