Foros - Stratos

Programadores => General Programadores => Mensaje iniciado por: ALRAZ en 23 de Julio de 2005, 10:04:00 AM

Título: Directorios En C++
Publicado por: ALRAZ en 23 de Julio de 2005, 10:04:00 AM
 Wenas

parecería una pregunta tonta pero me he dado cuenta que no hay mucha información al respecto:

¿alguien sabe cómo trabajar con directorios en C++?
es decir:
-Obtener los archivos del directorio actual (nombre y extensión) y sus subdirectorios
-Obtener el directorio actual
-Obtener las unidades disponibles (C:, D:, A:, etc)
-Obtener atriburos de los archivos
-crear nuevos directorios
-etc...
Título: Directorios En C++
Publicado por: fiero en 23 de Julio de 2005, 10:50:28 AM
 Las funciones del API de Windows son:

Directorio actual: GetCurrentDirectory
Crear un directorio: CreateDirectory
Listar ficheros: FindFirstFile, FindNextFile, FindClose

http://msdn.microsoft.com/library/default....t_functions.asp

También tienes clases de las MFC para hacer estas cosas, por ejemplo listar ficheros, con la clase CFileFind, etc.

un saludo
Título: Directorios En C++
Publicado por: zupervaca en 23 de Julio de 2005, 11:45:39 AM
 en esta url tienes las del api de win32

http://msdn.microsoft.com/library/default....t_functions.asp

saludos
Título: Directorios En C++
Publicado por: _Grey en 23 de Julio de 2005, 12:28:11 PM
 No existen unas funciones standard aceptadas por el comité ANSI, así que es algo complicadito....

Algunos compiladores tienen un dir.h con funciones para ello, si usas VC++ quizá tengas un direct.h con las mismas funciones pero con el "_" delante para delatar que están fuera de asegurar compatibilidad.

Busca en la documentación de tu compilador "chdir" y te aparecerán estas funciones que necesitas.

Saludos.
Título: Directorios En C++
Publicado por: ALRAZ en 23 de Julio de 2005, 09:20:02 PM
 adios porteabilidad  :(


en fin, probaré eso que me han dicho.


Gracias  (ole)  
Título: Directorios En C++
Publicado por: MChiz en 29 de Julio de 2005, 01:12:51 PM
 Hola!

En la libreria boost ( www.boost.org ) hay unos modulos para lo que quieres.

Es algo del estilo:

std::string directory = "c:/"

boost::filesystem::directory_iterator i( directory );
boost::filesystem::directory_iterator end_directory;

while( i != end_directory ) {
 bool is_directory = boost::filesystem::is_directory( *i );

 std::string name = directory + i->leaf( );

 if( is_directory ) {
   ...
 } else {
   ...
 }
}

En la documentacion de boost encontraras lo que necesites.

Un saludote!!
Título: Directorios En C++
Publicado por: zupervaca en 29 de Julio de 2005, 02:57:38 PM
 
Citaradios porteabilidad
si lo quieres hacer portable _Grey que ha dado la solucion
CitarBusca en la documentación de tu compilador "chdir" y te aparecerán estas funciones que necesitas