在c#中按名称搜索文件夹而不指定路径

时间:2013-01-09 06:07:19

标签: winforms c#-4.0

我想按名称搜索文件夹。但我不知道该文件夹的位置。

必须获取该特定文件夹的路径。

我该怎么做?

3 个答案:

答案 0 :(得分:2)

您必须使用Directory.GetDirectories Method (String, String, SearchOption)

指定要搜索文件夹的目录
string[] directories = Directory.GetDirectories(@"c:\",
                                                 "*", 
                                                 SearchOption.AllDirectories);

要从计算机获取所有驱动器,请使用DircotoryInfo.GetDrives,然后在所有驱动器中搜索,您可以尝试:

DriveInfo[] allDrives = DriveInfo.GetDrives();
List<string> directoryList = new List<string>();
foreach (DriveInfo d in allDrives)
{
    directoryList.AddRange(Directory.GetDirectories(d.Name , "*", SearchOption.AllDirectories));
}

答案 1 :(得分:0)

//只获取以字母“p。”开头的子目录。

string[] dirs = Directory.GetDirectories(@"c:\", "p*");
Console.WriteLine("The number of directories starting with p is {0}.",dirs.Length);
foreach (string dir in dirs) 
{
  Console.WriteLine(dir);
}

Reference - Directory.GetDirectories Method (String, String)

如果您不了解驱动器,则需要通过更改系统上可用的驱动器来搜索所有驱动器。

答案 2 :(得分:0)

唯一的解决方案是使用递归搜索来浏览所有可用的文件夹和子文件夹,还可以跳过访问被拒绝的路径以获得目标结果的完整列表。