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.

1

6 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")); 
7

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

2

try this.

filename = Path.ChangeExtension(".blah") 

in you Case:

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

You should look this post too:

The method GetFileNameWithoutExtension, as the name implies, does not return the extension on the file. In your case, it would only return "a". You want to append your ".Jpeg" to that result. However, at a different level, this seems strange, as image files have different metadata and cannot be converted so easily.

0

Convert file format to 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*/ 

Alternative to using Path.ChangeExtension

string ChangeFileExtension(ReadOnlySpan<char> path, ReadOnlySpan<char> extension) { var lastPeriod = path.LastIndexOf('.'); return string.Concat(path[..lastPeriod], extension); } string myfile= @"C:/my documents/my images/cars/a.jpg"; string changedFileExtesion = ChangeFileExtension(myfile, ".jpeg"); Console.WriteLine(changedFileExtesion); // output: C:/my documents/my images/cars/a.jpeg 

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.