Mi objetivo es construir un programa que cambia el nombre de todos los archivos en el directorio actual de trabajo, de modo que no tenga espacios, caracteres especiales o los caracteres acentuados (por ejemplo É sería E). Estoy planeando sobre el uso de int rename(const char *oldname, const char *newname); . Mi problema es ¿cómo puedo obtener los archivos en el directorio de trabajo actual? Me gustaría tener el ejecutable que estoy creando poner en una carpeta con archivos con nombres malos y ejecutarlo y todos los archivos se pueden modificar.

Una solución independiente de la plataforma sería preferible, de lo contrario, estoy usando Windows 7 Enterprise de 32 bits.

Esta pregunta no es un duplicado porque no sé el camino para opendir ("c:\\src\\"); es cualquier directorio que el programa está siendo ejecutado desde.

  • opendir, readdir, closedir
  • boost::filesystem tiene un directory_iterator o algo.
  • stackoverflow.com/questions/612097/…
  • Yo estaba confundido porque pensé que tenía que utilizar el Impulso de la biblioteca, pero yo en rojo en esta pregunta se había quedado obsoleta. stackoverflow.com/questions/6108650/… Así que no hay necesidad para el impulso?
  • Boost.Sistema de archivos no se ha quedado obsoleta. La pregunta es acerca de una función en particular que ha quedado obsoleta. Usar El Boost.Sistema de ficheros, es mucho más fácil de usar que el de otras maneras.
InformationsquelleAutor Celeritas | 2012-08-15

2 Comentarios

  1. 0

    Una opción es el uso de opendir(«.») este se abrirá el directorio actual.

    • Parece que el actual estándar de C++ no tiene interfaz cómoda para la lectura de todos los archivos en un directorio. Versión futura debe agregar esta funcionalidad. El sistema unix tiene todos los C interfaces para hacer frente a los sistemas de ficheros. Unix es realmente muy bueno en esto con la abstracción de Archivo para representar a todos los objetos del sistema de archivos.

Dejar respuesta

Please enter your comment!
Please enter your name here