2017-07-31 61 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; 

    }