2014-07-01 65 views
1

因此,我構建了一個控制檯應用程序,該應用程序具有列出目錄中所有文件的功能,並且我想告訴它顯示消息「目錄爲空」(如果沒有文件)該文件夾。我的代碼正確地返回文件夾內容,但是如果目錄爲空,我無法顯示我的文本消息,就好像它忽略了if語句。任何人都有建議,爲什麼它不工作?謝謝!如果文件目錄爲空C#

 Console.WriteLine(" Displaying Contents of Write Directory: "); 
     Console.WriteLine(" ---------------------------------------"); 
     Console.WriteLine(); 

     string[] filePaths = Directory.GetFiles(writeDir); 
     for (int i = 0; i < filePaths.Length; ++i) 
     { 
      if (i == 0) 
      { 
       Console.WriteLine(); 
       Console.WriteLine(" Directory is Empty!"); 
       Console.WriteLine(); 
       Console.ReadLine(); 
      } 
      else 
      { 
       string path = filePaths[i]; 
       Console.WriteLine("File: " + System.IO.Path.GetFileName(path)); 
       Console.WriteLine(); 
      } 
     } 

回答

4

它不會達到你if時,有沒有文件:

if (filePaths.Length > 0) 
{ 
    for (int i = 0; i < filePaths.Length; ++i) 
    { 
     string path = filePaths[i]; 
     Console.WriteLine("File: " + System.IO.Path.GetFileName(path)); 
     Console.WriteLine(); 
    } 
} 
else{ 
    Console.WriteLine(); 
    Console.WriteLine(" Directory is Empty!"); 
    Console.WriteLine(); 
    Console.ReadLine(); 
} 
2
string[] filePaths = Directory.GetFiles(writeDir); 
if (filePaths.Length == 0) 
{ 
    Console.WriteLine(); 
    Console.WriteLine(" Directory is Empty!"); 
    Console.WriteLine(); 
    Console.ReadLine(); 
} 
else 
{ 
    for (int i = 0; i < filePaths.Length; ++i) 
    { 
     string path = filePaths[i]; 
     Console.WriteLine("File: " + System.IO.Path.GetFileName(path)); 
     Console.WriteLine(); 
    } 
} 
+0

以及我認爲我更好;)upvote done – lordkain

+0

大聲笑,我更喜歡'=='...但我的手指在我身上發瘋。 –

0

把你的if語句檢查數組的大小了for循環的。 您的for-loop的條件是這樣的,它不會觸發,除非file.Paths.Length返回一個大於0的數字,所以當目錄中沒有文件時,if語句不會被檢查。