如何在给定目录的情况下对所有文件扩展名进行去大写?

RJ.*_*RJ. 2 c# rename tolower

    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"));
    }
Run Code Online (Sandbox Code Playgroud)

我认为运行上面的操作会将文件扩展名更改为小写.

我在目录中有文件:

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

我希望它是:

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

我该怎么做呢?

Rob*_*vey 6

使用ToLower()该方法String类,而ChangeExtension()该方法Path的类.这应该允许您小写所有扩展名,而不必枚举每个可能的扩展名.

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()));     
}
Run Code Online (Sandbox Code Playgroud)