这是我的递归函数:
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);
}
}
我从根路径开始调用,只读文件夹并添加路径到列表。问题是,如果我抓到一个不可访问的文件夹,它就会停止。我只想忽略不可访问的文件夹(或者更好,获取异常,但仍然读取其余文件夹)。
我该怎么做?
答案 0 :(得分:1)
如果在循环中创建第二个try / catch(嵌套的try / catch语句),则会在那里捕获错误,然后循环将恢复。
答案 1 :(得分:0)
尝试以下它会帮助你...
try
{
createListFolder(directory);
}
catch (Exception err)
{
txtErrors.AppendText(err.Message + Environment.NewLine);
}