Funcion para cambiar nombre de fichero en C++

Cambiando nombre de archivos en C++ con la funcion rename

Aunque parece muy avanzado el cambio de nombre de un archivo es bastante sencillo y se logra con el uso de una única función, tener presente el método para cambiar el nombre del fichero es fundamental si pensamos manipular archivos, no importa si es un archivo de texto txt o alguna otra extensión el procedimiento continua siendo el mismo.

Pasemos ya al código de ejemplo de cambiar el nombre de fichero en C++, nada más me gustaría aclarar para los que han estado manipulando archivos de texto y ya se dieron cuenta que es necesario abrir primero el archivo para escribir en el así como para leerlo, que para cambiar el nombre de nuestro fichero no es necesario abrirlo, únicamente se utiliza la función de forma directa veamos el ejemplo y luego lo explico y les comparto algunos consejos.

#include <cstdlib>
#include <cstdio>
using namespace std;
int main()
{
rename("ejemplo.txt","Codigazo.txt");
system("pause");
return 0;
}


En una explicación concisa les aclaro que la función utilizada es rename(), esta forma parte de la librería <cstdio>, en esta función se ingresan dos parámetros separados por una coma, en el primero se pone el nombre de un archivo existente y en el segundo se pone el nuevo nombre del mismo archivo, ambos nombres se encierran en comillas dobles para indicar que es literal, de lo contrario en estos parámetros se pueden utilizar variables y rellenar su contenido previamente, eso es todo.

Consejos sobre cambio de nombre de archivos en C++



Cambio de extensión: si lo que desea es cambiar la extensión del archivo y no su nombre por ejemplo de .txt a .docx ó .exe entonces solo cambie esa parte de la extensión y conserve el nombre por ejemplo

rename("ejemplo.txt","ejemplo.mp3");


Qué pasa si el archivo no existe: si está practicando estos ejemplos se dará cuenta que debe crear un archivo para luego renombrarlo y quizá se pregunte que acontece si el archivo no existe, en este caso el archivo no se creará simplemente el cambio de nombre es imposible, pero tampoco surgirá un conflicto nada más se considera un error.

¿Donde tiene que estar el archivo?: Quizá se pregunte sobre la localización del archivo al que cambiaremos el nombre, como era de esperar nuestro programa no buscará automáticamente en toda la computadora, de hecho tampoco sería buena idea que programa alguno lo haga, el archivo ha de estar en la misma carpeta donde se localice nuestro ejecutable, si movemos nuestro ejecutable al escritorio ahí tendrá que estar el archivo o los archivos a los que cambiaremos el nombre, si desea cambiar el nombre a algún archivo ubicado en otra ruta distinta a la del ejecutable ha de indicar su ruta completa como en el siguiente ejemplo, en este ejemplo el archivo al que cambiaremos el nombre estará en el escritorio mientras el ejecutable en cualquier otra parte.

#include <cstdlib>
#include <cstdio>
using namespace std;
int main()
{
rename("C:\\Users\\Codigazo\\Desktop\\ejemplo.txt","C:\\Users\\Codigazo\\Desktop\\Codigazo.txt");
system("pause");
return 0;
}


Nótese en el ejemplo anterior como la ruta del archivo no utiliza el slash "/" para separar los distintos sub directorios, se utiliza el back slash "\" si se pregunta cómo sacarlo con su teclado solo necesita mantener presionada la tecla ALT y digitar 92 (ALT+92), además note también que se utiliza 2 back slashes para indicar cada sub directorio y no solo 1.

Mover archivo en C++: si lo que desea es mover el archivo de localidad puede hacerlo utilizando la misma función rename()͛; pero en el segundo parámetro donde va el nuevo nombre, ha de escribir el mismo nombre sino desea cambiárselo pero una nueva ruta, vea el siguiente ejemplo, consideremos que el archivo ejemplo.txt está en la misma carpeta del ejecutable y queremos moverlo al escritorio sin cambiar su nombre.

#include <cstdlib>
#include <cstdio>
using namespace std;
int main()
{
rename("ejemplo.txt","C:\\Users\\Codigazo\\Desktop\\ejemplo.txt");
system("pause");
return 0;
}


Si también desea cambiar su nombre y luego moverlo entonces cambie el nombre del segundo parámetro además de su ruta.
Comentarios y preguntas