我需要在给定的文件夹路径中搜索文件夹是否存在。请建议你的想法。
例如:
- 我提供的路径为“E:\ TestSource
- 在“TestSource”中,我有“Sample”文件夹;
- 在该“示例”文件夹中,我有“详细信息”文件夹
- 现在我提供的文字为“样本”。
- 我需要搜索“Sample”文件夹。
醇>
如何获取“详细信息”文件夹的完整路径? 输出: E:\ TestSource \ SAMPLE \详细
先谢谢
答案 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);
}
}