如何通过其部分名称查找文件?

Mic*_*ael 33 c# c#-4.0

我怎样才能获得完整的文件名?

例如:

我有一个名为171_s.jpg存储在硬盘上的文件.

我需要通过其部分名称找到该文件,即171_s获取全名.

我该如何实现呢?

Mor*_*ard 66

以下是使用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);
    }    
}
Run Code Online (Sandbox Code Playgroud)

  • “EnumerateFiles”是当今的首选方法 (2认同)

Jay*_*Jay 11

答案已经发布,但是为了便于理解,这里是代码

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
}
Run Code Online (Sandbox Code Playgroud)


Jak*_*cki 8

你可以用 System.IO.Directory.GetFiles()

http://msdn.microsoft.com/en-us/library/ms143316.aspx

public static string[] GetFiles(
    string path,
    string searchPattern,
    SearchOption searchOption
)
Run Code Online (Sandbox Code Playgroud)

path 类型:System.String要搜索的目录.

searchPattern 类型:System.String要与路径中的文件名匹配的搜索字符串.参数不能以两个句点结尾("..")或包含两个句点(".."),后跟DirectorySeparatorChar或AltDirectorySeparatorChar,也不能包含InvalidPathChars中的任何字符.

searchOption 类型:System.IO.SearchOption SearchOption值之一,指定搜索操作是应包括所有子目录还是仅包含当前目录.