伊莉討論區

標題: C# 使用遞回想分類出檔案夾裡是否有檔案,卻一直分不出來 [打印本頁]

作者: drumking168    時間: 2017-5-7 12:12 AM     標題: C# 使用遞回想分類出檔案夾裡是否有檔案,卻一直分不出來

本帖最後由 drumking168 於 2017-5-7 12:21 AM 編輯

想請問各位大大
小弟目前用遞回想分類出檔案夾裡是否有檔案,卻一直分不出來
目前只能找出資料夾裡有檔案的資料夾
卻分不出資料夾裡沒檔案的資料夾

比如:D:\Test\A\x.ini  --->能分出A裡面的x.ini檔
         D:\Test\B    --->程式自動跳過無法幫我把B這個資料夾分出來

以下是我的程式碼
sDir是把要找的資料夾路徑丟進去
  1. void DirSearch(string sDir)
  2.         {
  3.             
  4.             try
  5.             {
  6.                 foreach (string d in Directory.GetDirectories(sDir))
  7.                 {
  8.                     foreach (string f in Directory.GetFiles(d,"*.*"))
  9.                     {
  10.                         listBox1.Items.Add(f);
  11.                     }
  12.                     DirSearch(d);
  13.                 }
  14.             }
  15.             catch (System.Exception excpt)
  16.             {
  17.                 Console.WriteLine(excpt.Message);
  18.             }
  19.         }
複製代碼








不知道大大們有沒有比較好的方式能做的到呢??
謝謝各位大大花時間看完我的問題

另外:有點不太會用代碼的方式表示程式碼,若有錯誤,敬請指教





作者: Josie_2016    時間: 2017-5-7 02:00 PM

下面程式給您參考
  1. void ListFiles(string path)
  2. {
  3.             
  4.             string[] dis = Directory.GetDirectories(path);
  5.             string[] files = Directory.GetFiles(path);
  6.             foreach (string f in files)
  7.             {
  8.                 listBox1.Items.Add(f);
  9.             }
  10.             foreach (string d in dis)
  11.             {
  12.                 listBox1.Items.Add(d);
  13.                 ListFiles(d);
  14.             }
  15. }
複製代碼

作者: drumking168    時間: 2017-5-7 08:29 PM

這方法似乎也是另一種解決的方式,謝謝josie大大
作者: bwong42!@#    時間: 2017-6-10 09:05 AM

提示: 作者被禁止或刪除 內容自動屏蔽
作者: chez_0000    時間: 2017-8-15 06:40 PM

Do this:
  1. void DirSearch(string sDir)
  2. {
  3.    
  4.     try
  5.     {
  6.         foreach (string d in Directory.GetDirectories(sDir))
  7.         {
  8.             bool hasFiles = false;
  9.             foreach (string f in Directory.GetFiles(d,"*.*"))
  10.             {
  11.                 hasFiles = true;
  12.                 listBox1.Items.Add(f);
  13.             }
  14.             
  15.             if (hasFiles == false)
  16.             {
  17.                 // The folder is empty, do your thing.
  18.             }
  19.             
  20.             DirSearch(d);
  21.         }
  22.     }
  23.     catch (System.Exception excpt)
  24.     {
  25.         Console.WriteLine(excpt.Message);
  26.     }
  27. }
複製代碼





歡迎光臨 伊莉討論區 (http://a28.eyny.com/) Powered by Discuz!