将文件扩展名添加到无扩展名文件

时间:2010-10-01 16:11:16

标签: c#

我正在尝试为我的C#应用​​中的OpenFileDialog中选择的文件添加扩展名。我对没有扩展名的文件有困难。

虽然我没有在带有扩展名的文件上测试以下方法,但我知道它不适用于没有扩展名的文件(这真的是什么我想在这里工作。)

string tPath = videoPath + videoName;
string tPath2 = Path.ChangeExtension(tPath, ".yuv");

tPath2将反映标题更改,但似乎不会影响文件本身,只会影响ChangeExtension方法返回的字符串。我只是继续将文件复制到一个具有相应名称和扩展名的新文件,但我们正在谈论巨大的,未压缩的高清视频文件。有没有办法将tPath2与我遗失的FileFileInfo对象结合使用?

我感谢任何人都可以在这里给我的帮助。感谢。

4 个答案:

答案 0 :(得分:14)

Path类只允许您对文件路径(意思是string)进行高级操作,而不是文件本身。

您需要使用File.Move才能重命名文件(包括只添加扩展程序)。

string tPath = videoPath + videoName;
string tPath2 = Path.ChangeExtension(tPath, ".yuv");

File.Move(tPath, tPath2); //effectively changes the extension

答案 1 :(得分:5)

要进行重命名而不必复制,请在最后添加此行:

System.IO.File.Move(tPath, tPath2);

File.Move(src, dst)做与FileInfo.MoveTo(dst)相同的事情)

对于没有扩展名的文件问题,请尝试以下操作:

if(string.IsNullOrEmpty(Path.GetExtension(tPath)){
  tPath += ".yuv";
}

答案 2 :(得分:3)

您需要实际调用FileInfo.MoveTo来重命名该文件。在同一物理驱动器上重命名文件通常是一个快速操作,因此文件很大并不重要。

答案 3 :(得分:3)

您只是更改文件名,那么为什么不执行“mypath”+“。ext”?

文件扩展名更改无需更改文件内容,它只是告诉操作系统如何处理它。