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

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

问题描述:

我需要在给定的文件夹路径中搜索文件夹是否存在或不存在。请给我建议你的想法。如何从给定文件夹路径获取文件夹路径?

例如:

  1. 我所提供的路径为“E:\ TestSource
  2. 在这种 “TestSource”,我有 “样品” 文件夹;
  3. 在该 “样品”文件夹,我有“详细信息”文件夹
  4. 现在我提供的文字为“样本”。
  5. 我需要搜索“样本”文件夹中。

如何获得“Details”文件夹的完整路径?输入: E:\ TestSource \ Sample \ Details。

由于提前

使用.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); 
    } 
} 
+0

了'DirectoryInfo'类的'.Name'属性会给你的目录名,为了让你有使用'.FullName'属性,而不是 –

+0

@取消幸运感谢路径。 – user7351608

+0

Coool。!很高兴帮助您 –

希望你正在寻找的东西,如:

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

} 

如果你要搜索子文件夹以及(让搜索文本是Details),那么你必须改变SearchOptionSearchOption.AllDirectories在这种情况下,变量searchFolder"Details"进行初始化,那么你将得到的输出为E:\TestSource\Sample\Details.

这里要考虑的另一个案例是,假设你可能有N个文件夹名称为Details的子文件夹在不同层次上,那么FirstOrDefault会给你第一个找到的结果,如果你需要所有文件夹路径意味着你应该遍历结果如下所示:FirstOrDefault

foreach (string folderPath in Directory.EnumerateDirectories(givenPath, searchFolder, SearchOption.AllDirectories)) 
{ 
    // iterating the list 
}