2012-08-22 127 views
2
originalFiles = Directory.GetFiles(fbFolderBrowser.SelectedPath).Where(file => !file.EndsWith(".db")).ToArray(); 

foreach (string file in originalFiles) 
    { 
     File.Move(file, file.Replace(".JPG", ".jpg")); 
     File.Move(file, file.Replace(".TIFF", ".tiff")); 
     File.Move(file, file.Replace(".JPEG", ".jpeg")); 
     File.Move(file, file.Replace(".BMP", ".bmp")); 
     File.Move(file, file.Replace(".GIF", ".gif")); 
    } 

我認爲運行上述操作會將文件擴展名更改爲小寫。如何刪除指定目錄的所有文件擴展名?

我在目錄中的文件:

AAA_1.jpg
AAA_2.JPG
BBB_1.TIFF
BBB_2.GIF

我希望它是:

AAA_1 .jpg
AAA_2.jpg
BBB_1.tiff
BBB_2.gif

我該怎麼做呢?

+1

這裏有一個類似的問題:改變文件擴展名(http://stackoverflow.com/questions/5259961/change-)這應該照顧你的問題 – CSharpDev

回答

6

使用String類的ToLower()方法和Path類的ChangeExtension()方法。這應該允許您小寫所有的擴展名,而不必枚舉每個可能的擴展名。

DirectoryInfo folder = new DirectoryInfo("c:\whatever"); 
FileInfo[] files = dirInfo.GetFiles("*.*"); 


foreach (var file in files) 
{ 
    File.Move(file.FullName, Path.ChangeExtension(file, 
     Path.GetExtension(file).ToLower()));  
} 
+0

的你能告訴我通過代碼的例子嗎? – Testifier

+1

我會嘗試。但是我使用Markdown編輯器作爲IDE,所以我不能保證它在第一次嘗試時就能正常工作! –

0

我明白了。感謝提示Robert。

foreach (string file in originalFiles) 
       { 
        File.Move(file, Path.ChangeExtension(file, Path.GetExtension(file).ToLower())); 
       } 
相關問題