nombre - Cambiar la extensión de archivo usando C#
cambiar la extension de un archivo c# (4)
Tengo muchos tipos de archivos: pdf, tiff, jpeg, bmp. etc. Mi pregunta es ¿cómo puedo cambiar la extensión de archivo? Intenté esto:
my file= c:/my documents/my images/cars/a.jpg;
string extension = Path.GetExtension(myffile);
myfile.replace(extension,".Jpeg");
No importa qué tipo de archivo sea, el formato que especifique debe estar con el nombre del archivo. Pero no funciona. Obtengo la ruta del archivo desde el navegador como c:/../../a.jpg
, y el formato del archivo es a.jpeg
. Entonces, cuando intento eliminarlo, me da un error: Cannot find the file on specified path''
. Entonces, estoy pensando que tiene algo que ver con la extensión de archivo que no coincide. Entonces, estoy tratando de convertir .jpg
a .jpeg
y borrar el archivo.
Debería hacer un movimiento del archivo para cambiarle el nombre. En su código de ejemplo, solo está cambiando la cadena, no el archivo:
myfile= "c:/my documents/my images/cars/a.jpg";
string extension = Path.GetExtension(myffile);
myfile.replace(extension,".Jpeg");
solo está cambiando myfile (que es una cadena). Para mover el archivo real, debes hacer
FileInfo f = new FileInfo(myfile);
f.MoveTo(Path.ChangeExtension(myfile, ".Jpeg"));
Ver FileInfo.MoveTo
GetFileNameWithoutExtension, como su nombre lo indica, no devuelve la extensión en el archivo. En tu caso, solo devolvería "a". Desea agregar su ".Jpeg" a ese resultado. Sin embargo, en un nivel diferente, esto parece extraño, ya que los archivos de imagen tienen metadatos diferentes y no se pueden convertir tan fácilmente.
Hay: método Path.ChangeExtension
. P.ej:
var result = Path.ChangeExtension(myffile, ".jpg");
En el caso de que también desee cambiar físicamente la extensión, podría usar el método File.Move
:
File.Move(myffile, Path.ChangeExtension(myffile, ".jpg"));
prueba esto.
filename = Path.ChangeExtension(".blah")
en ti caso:
myfile= c:/my documents/my images/cars/a.jpg;
string extension = Path.GetExtension(myffile);
filename = Path.ChangeExtension(myfile,".blah")
Deberías mirar esta publicación también: