我有很多文件类型:pdf,tiff,jpeg,bmp。等等 我的问题是如何更改文件扩展名? 我试过这个:
my file= c:/my documents/my images/cars/a.jpg;
string extension = Path.GetExtension(myffile);
myfile.replace(extension,".Jpeg");
无论文件的类型是什么,我指定的格式必须是文件名。但它不起作用。我从c:\..\..\a.jpg
这样的浏览器获取文件路径,文件格式为a.jpeg
。因此,当我尝试删除它时,它会给我一个错误:Cannot find the file on specified path'
。所以,我认为它与文件扩展名不匹配有关。所以,我正在尝试将.jpg
转换为.jpeg
并删除该文件。
答案 0 :(得分:191)
有Path.ChangeExtension
方法。 E.g:
var result = Path.ChangeExtension(myffile, ".jpg");
如果您还想要实际更改扩展程序,可以使用File.Move
方法:
File.Move(myffile, Path.ChangeExtension(myffile, ".jpg"));
答案 1 :(得分:17)
您应该移动文件以重命名它。在您的示例代码中,您只更改字符串,而不是文件:
myfile= "c:/my documents/my images/cars/a.jpg";
string extension = Path.GetExtension(myffile);
myfile.replace(extension,".Jpeg");
您只是在更改myfile(这是一个字符串)。要移动实际文件,您应该
FileInfo f = new FileInfo(myfile);
f.MoveTo(Path.ChangeExtension(myfile, ".Jpeg"));
答案 2 :(得分:8)
试试这个。
filename = Path.ChangeExtension(".blah")
在你的案例中:
myfile= c:/my documents/my images/cars/a.jpg;
string extension = Path.GetExtension(myffile);
filename = Path.ChangeExtension(myfile,".blah")
您也应该看一下这篇文章:
http://msdn.microsoft.com/en-us/library/system.io.path.changeextension.aspx
答案 3 :(得分:4)
顾名思义,方法GetFileNameWithoutExtension
不会返回文件的扩展名。在你的情况下,它只会返回“a”。您想要将“.Jpeg”附加到该结果中。但是,在不同的层面上,这看起来很奇怪,因为图像文件具有不同的元数据,并且无法轻易转换。
答案 4 :(得分:0)
string newfilename ,
string filename = "~/Photo/" + lbl_ImgPath.Text.ToString();/*get filename from specific path where we store image*/
string newfilename = Path.ChangeExtension(filename, ".png");/*Convert file format from jpg to png*/