Ver Mensaje Individual
  #4 (permalink)  
Antiguo 14/09/2013, 18:53
Avatar de guzzano
guzzano
 
Fecha de Ingreso: julio-2010
Ubicación: Isla de Margarita
Mensajes: 162
Antigüedad: 13 años, 9 meses
Puntos: 13
Respuesta: ¿Como obtener nombre de un directorio y su contenido?

Cita:
Iniciado por Oracles Ver Mensaje
Básicamente uso un código como este:

Código:
#include <iostream>
#include <stdlib.h>
#include <dirent.h>
#include <unistd.h>
#include <sys/types.h>

using namespace std;

int main()
{
	DIR *ID_Directorio;
	dirent *Directorio;
	ID_Directorio = opendir(".");
	
	Directorio = readdir(ID_Directorio);
	for(int i = 0; i < Directorio->d_reclen; i++)
			cout << Directorio->d_name[i] << "\n";
	return 0;
}
Es solo para ir probando, ya que es la primera vez que uso esta librería, y se me ocurren algunas aplicaciones donde puedo utilizarla, pero primero quiero aprender a usarla bien y que me puede dar exactamente.
Creo que aún no conoces el uso de la estructura dirent.h te dejo esta referencia que te va a servir bastante.

http://www.gnu.org/software/libc/man...ng-Directories

Como ayuda, d_name no es un arreglo de cadenas, y d_reclen no devuelve el número de archivos en el directorio. Examina el código que te puse arriba, readdir va a leer archivo por archivo, no va a guardar todo en la estructura. Por eso, se tiene que meter en un while.

Código C:
Ver original
  1. #include <iostream>
  2. #include <stdlib.h>
  3. #include <dirent.h>
  4. #include <unistd.h>
  5. #include <sys/types.h>
  6.  
  7. using namespace std;
  8.  
  9. int main()
  10. {
  11.     DIR *ID_Directorio;
  12.     dirent *Directorio;
  13.     ID_Directorio = opendir(".");
  14.    
  15.     while ((Directorio = readdir(ID_Directorio)) != NULL)
  16.       cout << Directorio->d_name << "\n";
  17.    
  18.     return 0;
  19. }

Saludos.