我正在尝试为我的C#应用中的OpenFileDialog
中选择的文件添加扩展名。我对没有扩展名的文件有困难。
虽然我没有在带有扩展名的文件上测试以下方法,但我知道它不适用于没有扩展名的文件(这真的是什么我想在这里工作。)
string tPath = videoPath + videoName;
string tPath2 = Path.ChangeExtension(tPath, ".yuv");
tPath2
将反映标题更改,但似乎不会影响文件本身,只会影响ChangeExtension
方法返回的字符串。我只是继续将文件复制到一个具有相应名称和扩展名的新文件,但我们正在谈论巨大的,未压缩的高清视频文件。有没有办法将tPath2
与我遗失的File
或FileInfo
对象结合使用?
我感谢任何人都可以在这里给我的帮助。感谢。
答案 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”?
文件扩展名更改无需更改文件内容,它只是告诉操作系统如何处理它。