我正在创建一个处理文件异常的方法。
我已在目录中列出所有文件并搜索子目录,并在C:\ Users \文件夹中列出这些子目录中的所有文件
listBox1.Items.AddRange(Directory.GetFiles("C:\\Users\\", "*", SearchOption.AllDirectories));
某些文件受Windows保护,当您为这些文件运行命令时,它会给我一个例外。
如果有可能,如何在发生异常时将返回异常的文件保存到另一个列表框并继续将文件列为第一个列表框?
答案 0 :(得分:0)
试试这个:
private List<string> GetFiles(string path, string pattern)
{
var files = new List<string>();
try
{
files.AddRange(Directory.GetFiles(path, pattern, SearchOption.TopDirectoryOnly));
foreach (var directory in Directory.GetDirectories(path))
files.AddRange(GetFiles(directory, pattern));
}
catch (UnauthorizedAccessException ex)
{
// unnautorized files, create another list and add here.
}
return files;
}