[英]Recursive searching directories with root directory in C#
如何遞歸遍歷目錄而不丟失根目錄的文件?
我具有以下功能,該功能以遞歸方式搜索目錄中的所有文件, 但未列出根目錄中的文件。
public static void ShowFiles(string dirpath)
{
try
{
foreach (string d in Directory.GetDirectories(dirpath))
{
foreach (string f in Directory.GetFiles(d))
{
Console.WriteLine(f);
}
ShowFiles(d);
}
}
誰能指導我如何修改它以在根目錄中列出文件?
將列出文件的代碼移到頂層,即,在遞歸處理目錄的循環之外。
foreach (string f in Directory.GetFiles(dirpath)) {
Console.WriteLine(f);
}
foreach (string d in Directory.GetDirectories(dirpath)) {
ShowFiles(d);
}
不要忘記catch
你try
。
首先,枚舉當前目錄中的文件,然后對其子目錄重復該方法。
public static void ShowFiles(string dirpath)
{
Console.WriteLine(String.Format("Files in {0}:", dirpath));
try
{
foreach (string f in Directory.GetFiles(dirpath))
{
Console.WriteLine('\t' + f);
}
foreach (string d in Directory.GetDirectories(dirpath))
{
ShowFiles(d);
}
}
catch (Exception e)
{
// do something with e
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.