如何在给定目录的情况下取消所有文件扩展名的大写?

Posted

技术标签:

【中文标题】如何在给定目录的情况下取消所有文件扩展名的大写?【英文标题】: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

我该怎么做呢?

【问题讨论】:

这是一个类似的问题:Change File Extension 那应该可以解决您的问题 【参考方案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()));

【讨论】:

以上是关于如何在给定目录的情况下取消所有文件扩展名的大写?的主要内容,如果未能解决你的问题,请参考以下文章

如何在给定文件扩展名的情况下获取 Qt 图标(QIcon)

怎样打印出文件夹下所有的文件名?

如何获取目录下的文件数(一行Python)

PHP 是不是具有在给定有效内容类型的情况下返回正确文件扩展名的函数?

列出给定起始目录中子目录中的所有文件

写一个Linux C程序,将一个文本文件中的所有小写字母转换为大写字母。