2010-06-18 44 views
0

我有我的應用程序和id創建的幾個文件夾,當他們點擊一個名爲「清理」的按鈕,它會檢查是否存在任何預定義的文件夾,如果他們確實刪除它們,這就是我到目前爲止嘗試過什麼錯誤?我如何檢查是否存在多個文件夾,如果這樣刪除按鈕點擊它們?

string tempFolder = Environment.GerFolderPath(Environment.SpecialFolder.ApplicationData); 
    if (Directory.Exists(tempFolder + "//" + "temp1")) 
    if (Directory.Exists(tempFolder + "//" + "temp2")) 
    if (Directory.Exists(tempFolder + "//" + "temp3")) 
    if (Directory.Exists(tempFolder + "//" + "temp4")) 
    { 
    System.IO.Directory.Delete(tempFolder + "\\" + "temp1", true); 
    System.IO.Directory.Delete(tempFolder + "\\" + "temp2", true); 
    System.IO.Directory.Delete(tempFolder + "\\" + "temp3", true); 
    System.IO.Directory.Delete(tempFolder + "\\" + "temp4", true); 
    } 
    else 
    { 
    MessageBox.Show("No Cleanup Needed"); 
    } 

那麼最新錯了?我測試了它,它似乎與2文件夾,但不是4或更多

回答

0

您的if語句排序不正確。 應該是:

bool cleanupNeeded = false; 
    if (Directory.Exists(tempFolder + "//" + "temp1")) 
    { 
     System.IO.Directory.Delete(tempFolder + "\\" + "temp1", true); 
     cleanupNeeded = true; 
    } 
    if (Directory.Exists(tempFolder + "//" + "temp2")) 
    { 
     System.IO.Directory.Delete(tempFolder + "\\" + "temp2", true); 
     cleanupNeeded = true; 
    } 
. 
. 
. 
    if(!cleanupNeeded) 
    { 
    //show your message box 
    } 

當然,你可以拿着目錄的名稱在數組(或列表),並在它們之間迭代一個循環,使代碼更易讀,易維護,可擴展的。

+0

它將如何作爲一個列表?我以前不認爲他們和他們一起工作過,而且這需要儘可能地維持。 – NightsEVil 2010-06-18 07:27:52

+0

你從來沒有使用過數組? – 2010-06-18 07:33:47

+0

不是我所知道的(即時學習實際上是在構建我的第一個應用程序) – NightsEVil 2010-06-18 07:36:24

1
if(statement1) 
if(statement2) 
if(statement3) 
if(statement4) 
{ 
    action(); 
} else 
{ 
    anotherAction() 
} 

手段

if(statement1) 
{ 
    if(statement2) 
    { 
     if(statement3) 
     { 
      if(statement4) 
      { 
       action(); 
      } 
      else 
      { 
       anotherAction() 
      } 
     } 
    } 
} 

所以,如果語句之一是假的什麼也不會在這種情況下執行。

相關問題