0

これは私の再帰関数です:

private void createListFolder(string path)
{
    try
    {
        string[] directoryList = Directory.GetDirectories(path);
        if (directoryList.Length > 0)
        {
            foreach (string directory in directoryList)
            {
                if (Directory.EnumerateFiles(directory).Any())
                {
                    folderList.Add(directory);
                }

                createListFolder(directory);
            }
        }
    }
    catch (Exception err)
    {
        txtErrors.AppendText(err.Message + Environment.NewLine);
    }
}

ルートパスから呼び出し、ファイルのあるフォルダーのみを読み取り、パスをリストに追加します。問題は、アクセスできないフォルダーをキャッチすると、停止することです。アクセスできないフォルダーを無視したいだけです(または、例外を取得しても、残りのフォルダーを読み込んでいます)。

どうすればいいですか?

4

2 に答える 2

1

ループ内に 2 つ目の try/catch を作成すると (入れ子になった try/catch ステートメント)、そこでエラーがキャッチされ、ループが再開されます。

于 2013-04-17T10:52:54.487 に答える