C# 替换包含“.”的文件名使用“”但删除文件扩展名

C# Replacing filenames containing "." with " " but removing the file extension

我正在重命名文件夹中包含“.”的文件。带有“”。
预期结果...之前:"I.am.testing.txt",之后:"I am testing.txt"
实际结果...之前:"I.am.testing.txt",之后:"I am testing 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(".", " ")));
}

你可以只用Path.GetFileNameWithoutExtension只获取文件名,然后把原来的扩展名追加到最后即可。

File.Move(fi.FullName, Path.Combine(fi.Directory.ToString(), Path.GetFileNameWithoutExtension(fi.Name).Replace(".", " ") + fi.Extension));