如何获取完整文件名?
例如:
我有一个名为171_s.jpg
的文件存储在硬盘上。
我需要按部分名称找到该文件,即171_s
,并获取全名。
我该如何实现?
答案 0 :(得分:60)
以下是使用GetFiles()的示例:
static void Main(string[] args)
{
string partialName = "171_s";
DirectoryInfo hdDirectoryInWhichToSearch = new DirectoryInfo(@"c:\");
FileInfo[] filesInDir = hdDirectoryInWhichToSearch.GetFiles("*" + partialName + "*.*");
foreach (FileInfo foundFile in filesInDir)
{
string fullName = foundFile.FullName;
Console.WriteLine(fullName);
}
}
答案 1 :(得分:9)
答案已经发布,但是为了便于理解,这里是代码
string folderPath = @"C:/Temp/";
DirectoryInfo dir= new DirectoryInfo(folderPath);
FileInfo[] files = dir.GetFiles("171_s*", SearchOption.TopDirectoryOnly);
foreach (var item in files)
{
// do something here
}
答案 2 :(得分:8)
您可以使用System.IO.Directory.GetFiles()
http://msdn.microsoft.com/en-us/library/ms143316.aspx
public static string[] GetFiles(
string path,
string searchPattern,
SearchOption searchOption
)
<强>路径强> 键入:System.String 要搜索的目录。
<强>是searchPattern 强> 键入:System.String 用于匹配路径中文件名称的搜索字符串。参数不能以两个句点(“..”)结尾或包含两个句点 (“..”)后跟DirectorySeparatorChar或 AltDirectorySeparatorChar,也不能包含任何字符 InvalidPathChars。
<强> searchOption 强> 键入:System.IO.SearchOption SearchOption值之一,指定搜索操作是应包括所有子目录还是仅包含当前子目录 。目录
答案 3 :(得分:2)
你可以这样做:
....
List<string> _filesNames;
foreach(var file in _directory)
{
string name = GetFileName(file);
if(name.IndexOf(_partialFileName) > 0)
{
_fileNames.Add(name);
}
}
....