使用C#更改文件扩展名

我有很多文件types:pdf,tiff,jpeg,bmp。 等我的问题是如何更改文件扩展名? 我试过这个:

my file= c:/my documents/my images/cars/a.jpg; string extension = Path.GetExtension(myffile); myfile.replace(extension,".Jpeg"); 

无论是什么types的文件,我指定的格式必须与文件名。 但它不起作用。 我从浏览器中获取文件path,如c:\..\..\a.jpg ,文件格式为a.jpeg 。 所以,当我试图删除它,它给了我一个错误: Cannot find the file on specified path' 。 所以,我认为这与不匹配的文件扩展名有关。 所以,我试图将.jpg转换为.jpeg然后删除文件。

有: Path.ChangeExtension方法。 例如:

 var result = Path.ChangeExtension(myffile, ".jpg"); 

在这种情况下,如果您还想实际更改扩展名,则可以使用File.Move方法:

 File.Move(myffile, Path.ChangeExtension(myffile, ".jpg")); 

你应该做的文件移动重命名。 在您的示例代码中,您只是更改string,而不是文件:

 myfile= "c:/my documents/my images/cars/a.jpg"; string extension = Path.GetExtension(myffile); myfile.replace(extension,".Jpeg"); 

你只是改变myfile(这是一个string)。 要移动实际的文件,你应该这样做

 FileInfo f = new FileInfo(myfile); f.MoveTo(Path.ChangeExtension(myfile, ".Jpeg")); 

请参阅FileInfo.MoveTo

尝试这个。

 filename = Path.ChangeExtension(".blah") 

在你案例:

 myfile= c:/my documents/my images/cars/a.jpg; string extension = Path.GetExtension(myffile); filename = Path.ChangeExtension(myfile,".blah") 

你也应该看这个post:

http://msdn.microsoft.com/en-us/library/system.io.path.changeextension.aspx

顾名思义,GetFileNameWithoutExtension不会返回文件的扩展名。 在你的情况下,它只会返回“a”。 你想追加你的“.JPEG”的结果。 但是,在不同的级别,这看起来很奇怪,因为图像文件具有不同的元数据,不能很容易地转换。