如何从给定文件夹路径获取文件夹路径?
问题描述:
我需要在给定的文件夹路径中搜索文件夹是否存在或不存在。请给我建议你的想法。如何从给定文件夹路径获取文件夹路径?
例如:
- 我所提供的路径为“E:\ TestSource
- 在这种 “TestSource”,我有 “样品” 文件夹;
- 在该 “样品”文件夹,我有“详细信息”文件夹
- 现在我提供的文字为“样本”。
- 我需要搜索“样本”文件夹中。
如何获得“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);
}
}
答
希望你正在寻找的东西,如:
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
在这种情况下,变量searchFolder
应"Details"
进行初始化,那么你将得到的输出为E:\TestSource\Sample\Details.
这里要考虑的另一个案例是,假设你可能有N
个文件夹名称为Details
的子文件夹在不同层次上,那么FirstOrDefault
会给你第一个找到的结果,如果你需要所有文件夹路径意味着你应该遍历结果如下所示:FirstOrDefault
foreach (string folderPath in Directory.EnumerateDirectories(givenPath, searchFolder, SearchOption.AllDirectories))
{
// iterating the list
}
了'DirectoryInfo'类的'.Name'属性会给你的目录名,为了让你有使用'.FullName'属性,而不是 –
@取消幸运感谢路径。 – user7351608
Coool。!很高兴帮助您 –