Cita:
Iniciado por Oracles 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#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(".");
while ((Directorio = readdir(ID_Directorio)) != NULL)
cout << Directorio->d_name << "\n";
return 0;
}
Saludos.