C# 替换包含“.”的文件名带有“”但删除文件扩展名
Posted
技术标签:
【中文标题】C# 替换包含“.”的文件名带有“”但删除文件扩展名【英文标题】:C# Replacing filenames containing "." with " " but removing the file extension 【发布时间】:2017-07-16 00:47:13 【问题描述】:我正在重命名包含“。”的文件夹中的文件。带有“”。 预期结果...之前:“I.am.testing.txt”,之后:“I am testing.txt” 实际结果...之前:“I.am.testing.txt”,之后:“我正在测试txt”
问题是它还删除了“。”对于显然是一个问题的文件扩展名..
string folderPath = new DirectoryInfo(textBoxDir.Text).FullName;
DirectoryInfo d = new DirectoryInfo(folderPath);
FileInfo[] filesDot = d.GetFiles("*.*");
foreach (FileInfo fi in filesDot)
File.Move(fi.FullName, Path.Combine(fi.Directory.ToString(), fi.Name.Replace(".", " ")));
【问题讨论】:
【参考方案1】:您可以只使用Path.GetFileNameWithoutExtension
仅获取文件名,然后将原始扩展名附加到末尾。
File.Move(fi.FullName, Path.Combine(fi.Directory.ToString(), Path.GetFileNameWithoutExtension(fi.Name).Replace(".", " ") + fi.Extension));
【讨论】:
如果你这样做,你还需要添加 + Path.GetFileExtension(fi.Name) 作为 Path.Combine 的第二个参数的一部分 如果您查看我几分钟前的编辑,您会发现我添加了该内容。发帖后才知道。谢谢。 对不起,我在手机上的应用,还没有刷新。 没问题@iCode 我做了同样的事情比我想提到的要多。 @Conor 完美,很高兴我们能为您解决问题!以上是关于C# 替换包含“.”的文件名带有“”但删除文件扩展名的主要内容,如果未能解决你的问题,请参考以下文章
如何在 C# Unity 中加载带有扩展名(.json)的资产文件夹中的任何文件
用其他东西替换或删除新行,但只能在 CSV 文件上使用 PHP 的单引号或双引号之间