我需要在給定的文件夾路徑中搜索文件夾是否存在或不存在。請給我建議你的想法。如何從給定文件夾路徑獲取文件夾路徑?
例如:
- 我所提供的路徑爲「E:\ TestSource
- 在這種 「TestSource」,我有 「樣品」 文件夾;
- 在該 「樣品」文件夾,我有「詳細信息」文件夾
- 現在我提供的文字爲「樣本」。
- 我需要搜索「樣本」文件夾中。
如何獲得「Details」文件夾的完整路徑?輸入: E:\ TestSource \ Sample \ Details。
由於提前
我需要在給定的文件夾路徑中搜索文件夾是否存在或不存在。請給我建議你的想法。如何從給定文件夾路徑獲取文件夾路徑?
例如:
- 我所提供的路徑爲「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。!很高興幫助您 –