2011-02-23 120 views
0

我想從我的臨時文件夾中刪除特定的目錄刪除C#中的目錄

try 
    { 
     string[] files = Directory.GetFiles(path + "uniquePdf\\"); 

     string[] direct = Directory.GetDirectories(path + "uniquePdf\\"); 
     foreach (string file in files) 
     { 
      File.SetAttributes(file, FileAttributes.Normal); 
      File.Delete(file); 
     } 
     Directory.Delete(path); 
    } 

路徑變量指向臨時文件夾,並uniquePdf是我的存在內部創建的文件夾。如何在關閉應用程序時刪除此文件夾?上述方法似乎在

Directory.Delete(path); 

拋出一個異常做我需要做的

Directory.Delete(path + "uniquePdf\\"); 
+1

當你在SO的問題中說「上述方法似乎拋出一個異常」時,通常是一個好主意,包括你所看到的異常的細節;它會幫助人們回答你的問題。 – Tony 2011-02-23 08:52:09

+0

在未來我會,下面的答案已經工作了,我應該回去,並得到錯誤,並將其粘貼? – tom 2011-02-23 08:56:54

回答

3
  1. 始終使用Path.Combine()來創建路徑
  2. 刪除時,請關閉程序時,該應用程序被終止代碼將無法運行,所以我建議你,可以做然而,在應用程序啓動時清空/重新創建文件夾。
  3. 是的,你需要刪除所有的文件。

請指出你能幫助我們的例外。

+1

+1爲「使用Path.Combine()」 – Tony 2011-02-23 08:50:22

2

Directory.Delete具有過載,這需要第二個參數,bool recursive。您可能需要使用:System.IO.Directory.Delete(path + "uniquePdf", true);

0

你應該叫

Directory.Delete(Path.Combine(path, "uniquePdf"), true); 

如果你有一個例外,那將是很好的瞭解你有什麼樣的異常。也許你仍然有文件夾中打開的文件之一。因此,請確保在開始刪除目錄之前,將所有文件處理都放入using()語句中,或者您調用file.Close()

+0

他得到一個異常,因爲命名不正確的'路徑'是他的系統臨時目錄,他試圖刪除它。 – 2011-02-23 08:53:05

0

只是做Directory.Delete(Path.Combine(path, "uniquePdf"), true);

正如其他人所說,使用Path.xxx功能與路徑玩,不要做字符串連接,而不必擔心像尾隨斜線巫術。