2017-07-31 24 views
0

我正在创建一个处理文件异常的方法。列出所有向列表框返回异常的文件C#

我列出目录中的所有文件,并在这些子目录中搜索子目录和列出所有文件也放在C:\用户\文件夹

listBox1.Items.AddRange(Directory.GetFiles("C:\\Users\\", "*", SearchOption.AllDirectories)); 

一些文件被Windows保护,当你运行这些文件的命令给了我一个例外。

如果有任何可能的情况发生异常时,如何将保存返回异常的文件保存到另一个列表框并继续将文件列出到第一个列表框?

+1

是'listbox'一个'.NET'成分?或者'Windows.Forms'呢? 此外,你可以'尝试/抓住'做这样的治疗。 –

+0

选中此答案,您可能需要手动执行遍历https://stackoverflow.com/a/172575/920557。 –

+0

我会尝试/捕获异常,并查看我在异常中的文件信息,以提交我的第二个列表。 – JBO

回答

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; 

    }