我正在尝试显示所选目录中(以及可选的任何子目录中)找到的所有文件的列表。 我遇到的问题是,当GetFiles()方法遇到无法访问的文件夹时,它会抛出异常并停止进程。
我该如何忽略此异常(并忽略受保护的文件夹/文件),并继续向列表中添加可访问的文件?
try
{
if (cbSubFolders.Checked == false)
{
string[] files = Directory.GetFiles(folderBrowserDialog1.SelectedPath);
foreach (string fileName in files)
ProcessFile(fileName);
}
else
{
string[] files = Directory.GetFiles(folderBrowserDialog1.SelectedPath, "*.*", SearchOption.AllDirectories);
foreach (string fileName in files)
ProcessFile(fileName);
}
lblNumberOfFilesDisplay.Enabled = true;
}
catch (UnauthorizedAccessException) { }
finally {}
GetFiles
或GetDirectories
都可能抛出异常,导致在异常之后无法看到任何内容。 - HackSlashtry
块之外。提示:将该代码运行在您的C:\
根目录上,它永远不会跳出根文件夹。 - HackSlash