簡體   English   中英

在C#中使用根目錄進行遞歸搜索目錄

[英]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);
}

不要忘記catchtry

首先,枚舉當前目錄中的文件,然后對其子目錄重復該方法。

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM