Изменение расширения файла с помощью С#
У меня много типов файлов: 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" к этому результату. Однако на другом уровне это кажется странным, поскольку файлы изображений имеют разные метаданные и не могут быть легко преобразованы.