【发布时间】:2011-06-27 06:20:51
【问题描述】:
我正在使用 Directory.GetFiles() 方法来获取要操作的文件列表。例如,当尝试访问受保护的文件夹时,此方法会引发 UnauthorizedAccessException。我希望它简单地跳过这些文件夹并继续。如何使用 Directory.GetFiles (最好)或其他方法来完成此操作?
更新:
这是引发异常的代码。我要求用户选择一个目录,然后检索文件列表。我注释掉了遍历文件的代码(所以这是现在的整个方法),问题仍然存在。在 Directory.GetFiles() 行上引发异常。
FolderBrowserDialog fbd = new FolderBrowserDialog();
DialogResult dr = fbd.ShowDialog();
if (dr == System.Windows.Forms.DialogResult.Cancel) return;
string directory = fbd.SelectedPath;
string[] files = Directory.GetFiles(directory, "*.html", SearchOption.AllDirectories);
【问题讨论】:
-
你能发布你的代码吗?如果检测到的文件之一被锁定,
GetFiles不应抛出。您确定当您遍历文件并对它们执行某些操作时不会发生异常吗? -
GetFiles 调用是否出错,或者当您尝试对其找到的文件执行某些操作时?
-
@0xA3 我刚刚意识到它在访问受保护目录时抛出异常,而不是文件本身。