2017-01-14 175 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);