如何从给定的文件夹路径获取文件夹路径?

时间:2016-12-30 05:27:45

标签: c# winforms file io

我需要在给定的文件夹路径中搜索文件夹是否存在。请建议你的想法。

例如:

  
      
  1. 我提供的路径为“E:\ TestSource
  2.   
  3. 在“TestSource”中,我有“Sample”文件夹;
  4.   
  5. 在该“示例”文件夹中,我有“详细信息”文件夹
  6.   
  7. 现在我提供的文字为“样本”。
  8.   
  9. 我需要搜索“Sample”文件夹。
  10.   

如何获取“详细信息”文件夹的完整路径? 输出: E:\ TestSource \ SAMPLE \详细

先谢谢

2 个答案:

答案 0 :(得分:2)

希望您正在寻找类似的内容:

string givenPath = @"E:\TestSource";
 string searchFolder = "sample";
 if (Directory.Exists(givenPath))
 {
     string pathToSample = Directory.EnumerateDirectories(givenPath, searchFolder, SearchOption.TopDirectoryOnly)
                                    .FirstOrDefault(x => x != "");

 }

如果您还要搜索子文件夹(让搜索文本为Details),则必须将SearchOption更改为SearchOption.AllDirectories,在这种情况下,变量{{ 1}}应使用searchFolder进行初始化,然后输出为"Details"

此处需要考虑的另一个案例是,假设您在子文件夹的不同级别中可能有E:\TestSource\Sample\Details.个名称为N的文件夹,则Details将为您提供第一个找到的结果,如果您需要所有文件夹路径,则意味着您应该按照以下内容迭代结果,而不是FirstOrDefault

FirstOrDefault

答案 1 :(得分:2)

使用.Net DirectoryInfo类。有了这个,您将能够动态查看子目录。 MSDN Documentation

DirectoryInfo mainDirectory = new DirectoryInfo("E:\\TestSource");

foreach(DirectoryInfo subDirectory in mainDirectory.GetDirectories())
{
   Console.WriteLine(subDirectory.FullName);

   //go another layer deep or write a recursive method
   foreach(DirectoryInfo sub in subDirectory.GetDirectories())
   {
      Console.WriteLine(sub.FullName);
   }
}