【问题标题】:C# Replacing filenames containing "." with " " but removing the file extensionC# 替换包含“.”的文件名带有“”但删除文件扩展名
【发布时间】: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(".", " ")));
}

【问题讨论】:

    标签: c# file renaming


    【解决方案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 完美,很高兴我们能为您解决问题!
    猜你喜欢
    • 2014-07-11
    • 1970-01-01
    • 2016-12-06
    • 1970-01-01
    • 2011-03-24
    • 1970-01-01
    • 1970-01-01
    • 2015-01-03
    • 1970-01-01
    相关资源
    最近更新 更多