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