Изменить Расширение Файла С Помощью 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 78
c#

5 ответов:

есть: Path.ChangeExtension метод. Например:

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

в случае, если вы также хотите физически изменить расширение, вы можете использовать File.Move способ:

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

вы должны сделать перемещение файла, чтобы переименовать его. В вашем примере кода Вы изменяете только строку, а не файл:

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

попробуйте это.

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

GetFileNameWithoutExtension, как следует из названия, не возвращает расширение файла. В вашем случае он вернет только "а". Вы хотите добавить свой ".Jpeg " к этому результату. Однако на другом уровне это кажется странным, поскольку файлы изображений имеют разные метаданные и не могут быть преобразованы так легко.

конвертировать формат файла в 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*/