Изменение расширения файла с помощью С#

У меня много типов файлов: 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 и удалить файл.

Ответ 1

Существует метод Path.ChangeExtension. Например:.

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

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

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

Ответ 2

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

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

Ответ 3

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

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

Ответ 4

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