2011-04-12 68 views
5

我的C:\ TEMP目錄中存在許多.bmp文件。使用C#刪除目錄中的特定文件

我正在使用下面的代碼來刪除我的C:\ TEMP目錄中的所有.bmp文件,但不知何故它不能正常工作。任何人都可以幫助我嗎?

string[] filePaths = Directory.GetFiles(@"c:\TEMP\"); 
foreach (string filePath in filePaths) 
{ 
    if (filePath.Contains(".bmp")) 
     File.Delete(filePath); 
} 

我已經檢查了.bmp文件和目錄沒有隻讀屬性

+3

提示:使用Directory.GetFiles中的searchPattern參數只能獲取位圖。 (例如「* .bmp」)請參閱[MSDN文章](http://msdn.microsoft.com/en-us/library/wz42302f.aspx) – AndyGeek 2011-04-12 19:22:13

+1

您是否在您的用戶帳戶下手動運行應用程序,您是否有權訪問從C:\ Temp中刪除文件?另外,當您試圖刪除它們時,是否有任何文件正在使用。當您嘗試刪除文件時,您看到了哪些類型的結果/錯誤? – Zachary 2011-04-12 19:23:12

回答

13

對於初學者來說,GetFiles的具有過載,這需要搜索模式http://msdn.microsoft.com/en-us/library/wz42302f.aspx所以你可以做:

Directory.GetFiles(@"C:\TEMP\", "*.bmp"); 

因爲它不工作,發生了什麼?
它發現了什麼嗎?
它拋出任何錯誤?

+0

它現在工作謝謝。 – Hiren 2011-04-12 19:26:09

3

也應該使用.EndsWith代替。載

-1

你可以寫下面的代碼以快速的方式:

string[] t = Directory.GetFiles(Environment.CurrentDirectory, "*.pdf"); 
    Array.ForEach(t, File.Delete); 

或文本文件:

string[] t = Directory.GetFiles(Environment.CurrentDirectory, "*.txt"); 
    Array.ForEach(t, File.Delete); 

所以,你可以寫所有擴展和所有目錄的代碼。