C# 如何从目录中获取文件特定的文件名?
但不仅是gif,我还想指定它将是唯一包含名称红外线的文件。例如,我有文件名0infrared.gif和0visible.gif,我想获取所有红外文件。也许C# 如何从目录中获取文件特定的文件名?,c#,.net,winforms,C#,.net,Winforms,但不仅是gif,我还想指定它将是唯一包含名称红外线的文件。例如,我有文件名0infrared.gif和0visible.gif,我想获取所有红外文件。也许*infrared*(jpg | gif)可以工作这将获取所有文件名为红外且扩展名为jpg的文件 string[] list = Directory.GetFiles(countriesMainPath + "\\" + currentDownloadCountry, "*.jpg"); string partialName = "infr
*infrared*(jpg | gif)
可以工作这将获取所有文件名为红外且扩展名为jpg的文件
string[] list = Directory.GetFiles(countriesMainPath + "\\" + currentDownloadCountry, "*.jpg");
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);
}
这将返回文件名中包含红外线的所有文件。我想这可能就是您要查找的文件。参考:
Directory.GetFiles
方法不支持管道字符作为两个选项之间的替代方式。您的注释说您需要.gif
文件,但您的代码说的是.jpg
。您想要哪一个?这将获得所有包含“红外线”的文件,而不仅仅是.jpg
s或.gif
s。这就是op想要的“不仅是gif,我还想指定它将是唯一包含…”的文件。欢迎使用SO!阅读以了解如何使用代码块
string[] list = Directory.GetFiles(countriesMainPath + "\\" + currentDownloadCountry,
"*infrared*.jpg");
string[] list = Directory.GetFiles(
countriesMainPath + "\\" + currentDownloadCountry,
"*infrared*.*");
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);