Me gustaría cambiar el nombre de un archivo txt
pero no puedo encontrar cómo hacerlo.Cómo cambiar el nombre de un archivo de texto en C++
Por ejemplo, quiero cambiar el nombre de foo.txt
a boo.txt
en mi programa C++.
Me gustaría cambiar el nombre de un archivo txt
pero no puedo encontrar cómo hacerlo.Cómo cambiar el nombre de un archivo de texto en C++
Por ejemplo, quiero cambiar el nombre de foo.txt
a boo.txt
en mi programa C++.
#include <stdio.h>
(o <cstdio>
) y el uso rename
(o std::rename
):
rename("oldname.txt", "newname.txt");
Contrariamente a la creencia popular, esto está incluido en la biblioteca estándar, y es portátil hasta un punto - aunque por supuesto la Los contenidos permitidos de las cadenas variarán con el sistema de destino.
Compatibilidad con el sistema de archivos es notablemente ausente de la biblioteca estándar de C++. Como muestra la respuesta de Jerry Coffin, en realidad hay una función de cambio de nombre en stdio (contrariamente a la creencia popular que compartí). Sin embargo, hay muchos dispositivos relacionados con el sistema de archivos que la lib estándar no cubre, de ahí la existencia de Boost :: Filesystem (especialmente manipulando directorios y recuperando información sobre archivos).
Esta es una decisión de diseño para hacer C++ menos restringido (es decir, hacer posible la compilación en una amplia gama de plataformas, incluidos los sistemas integrados, donde la idea de un archivo es inexistente).
Para llevar a cabo las operaciones de archivo, uno tiene dos opciones:
utilizar la API del sistema operativo de destino
uso de una biblioteca que proporciona una interfaz unificada a través de plataformas
Boost::Filesystem es esa biblioteca de C++ que abstrae las diferencias de plataforma.
Puede usar el Boost::Filesystem::rename para cambiar el nombre de un archivo.
C++ no es compatible directamente con los sistemas de archivos. Los diferentes sistemas operativos proporcionan diferentes API para esta funcionalidad. ¿A qué OS estás apuntando? –
Esta no es una pregunta de C++, excepto que puede abrir un archivo con un nombre para leer, abrir uno con otro nombre para escribir y copiar. El cambio de nombre es una función del sistema operativo y, por lo tanto, debe indicarnos qué sistema operativo está utilizando para ayudarnos. –