2017-02-25 120 views
3

我重命名包含“。”的文件夹中的文件。用“”。
预期结果...之前:“I.am.testing.txt”,之后:“我是testing.txt”
实际结果...之前:“I.am.testing.txt”,之后:“我正在测试txt“C#替换包含“。”的文件名与“”但删除文件扩展名

问题是,它也删除了”。“对于文件扩展名这显然是一个问题..

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(".", " "))); 
} 

回答

6

你可以使用Path.GetFileNameWithoutExtension只获取文件的名称,然后只是追加原来的扩展名进行到底。

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

如果你这样做,你还需要添加+ Path.GetFileExtension(fi.Name)作为第二个参数的一部分Path.Combine – iCode

+0

如果你看看我的编辑从几分钟前,你可以看到我补充说。我发布后,我意识到。谢谢。 –

+0

对不起,我在我的手机上的应用程序,并没有刷新。 – iCode