2011-04-12 69 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); 

所以,你可以写所有扩展和所有目录的代码。