使用C#更改文件扩展名

时间:2011-03-10 13:01:52

标签: c#

我有很多文件类型: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并删除该文件。

5 个答案:

答案 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"));

请参阅FileInfo.MoveTo

答案 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)

将文件格式转换为png

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*/