Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Change File Extension Using C#

Tags:

c#

I have many file types: pdf, tiff, jpeg, bmp. etc. My question is how can I change file extension? I tried this:

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

No matter what type of file it is, the format I specify must be with the file name. But it does not work. I get file path from browser like c:\..\..\a.jpg, and the file format is a.jpeg. So, when I try to delete it, it gives me an error: Cannot find the file on specified path'. So, I am thinking it has something to do with the file extension that does not match. So, I am trying to convert .jpg to .jpeg and delete the file then.

like image 911
safi Avatar asked Mar 10 '11 13:03

safi


People also ask

How do you change a file extension?

You can also do it by right-clicking on the unopened file and clicking on the “Rename” option. Simply change the extension to whatever file format you want and your computer will do the conversion work for you.

What file extension does C use?

It is common practice across most platforms (ie: UNIX, Microsoft Windows, etc) that C source code files end with the ". c" extension.


2 Answers

There is: Path.ChangeExtension method. E.g.:

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

In the case if you also want to physically change the extension, you could use File.Move method:

File.Move(myffile, Path.ChangeExtension(myffile, ".jpg")); 
like image 74
Oleks Avatar answered Sep 18 '22 23:09

Oleks


You should do a move of the file to rename it. In your example code you are only changing the string, not the file:

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

you are only changing myfile (which is a string). To move the actual file, you should do

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

See FileInfo.MoveTo

like image 23
Michiel Overeem Avatar answered Sep 18 '22 23:09

Michiel Overeem