【问题标题】:How do I de-capitalize all file extensions given a directory?如何在给定目录的情况下取消所有文件扩展名的大写?
【发布时间】:2012-08-18 08:12:13
【问题描述】:
    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

我该怎么做呢?

【问题讨论】:

标签: c# rename tolower


【解决方案1】:

使用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()));     
}

【讨论】:

    【解决方案2】:

    我明白了。感谢罗伯特的提示。

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

    【讨论】:

      猜你喜欢
      • 2011-06-09
      • 1970-01-01
      • 2012-05-29
      • 1970-01-01
      • 1970-01-01
      • 2016-09-25
      • 2019-11-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多