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

如果您在循环中创建第二个 try/catch(嵌套的 try/catch 语句),则会在此处捕获错误,然后循环将继续。

于 2013-04-17T10:52:54.487 回答
0

像下面这样尝试它会帮助你...

try
{
 createListFolder(directory);
}
catch (Exception err)
{
 txtErrors.AppendText(err.Message + Environment.NewLine);
}
于 2013-04-17T11:09:27.373 回答