如何在给定目录的情况下取消所有文件扩展名的大写?
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()));
【讨论】:
以上是关于如何在给定目录的情况下取消所有文件扩展名的大写?的主要内容,如果未能解决你的问题,请参考以下文章