如何跳过不可访问的文件夹?

时间:2013-04-17 10:48:50

标签: c# exception permissions tree directory

这是我的递归函数:

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);
    }
}

我从根路径开始调用,只读文件夹并添加路径到列表。问题是,如果我抓到一个不可访问的文件夹,它就会停止。我只想忽略不可访问的文件夹(或者更好,获取异常,但仍然读取其余文件夹)。

我该怎么做?

2 个答案:

答案 0 :(得分:1)

如果在循环中创建第二个try / catch(嵌套的try / catch语句),则会在那里捕获错误,然后循环将恢复。

答案 1 :(得分:0)

尝试以下它会帮助你...

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