C/Visual C - Sr.

 
Vista:

Sr.

Publicado por Hugo (2 intervenciones) el 12/09/2002 19:39:11
Estimados/as Colegas

tengo que hacer un programa en C++ y en ambiente Unix, loq eu complica un `poco más las cosas, y necesito leer el contenido de un directorio y colocarlo en un archivo o un vector. Si alguien tiene algo se lo voy a agradecer. Slds Hugo
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Sr.

Publicado por chuidiang (677 intervenciones) el 12/09/2002 21:07:52
No sé si hay funciones especificas para ello, pero te cuento una posibilidad.

Hay una función en C de Unix que es popen(). Esa función abre un ejecutable como si fuera un fichero y lo que puedes leer de él es el resultado de su ejecución (su salida standard).

Dicho de otra forma (y sin meterme demasiado en que la sintaxis sea correcta):

abres el fichero /bin/ls
fich = popen ("/bin/ls directorio", "r");

Ahora lees de él
fscanf (fich, "%s", fichero);

Leyendo sucesivas veces, hasta el feof(), iras obteniendo los ficheros que hay en el directorio.

Cuando acabes, cierras con
pclose (fich);

Se bueno.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Sr

Publicado por Armando (127 intervenciones) el 14/09/2002 01:35:16
Saludos.

Si estas trabajando bajo Unix, puedes usa el shell del sistema

ls -l > directorio.txt

Y para obtener algun campo especifico puedes usar AWK



Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Sr.

Publicado por Víctor Carreño (13 intervenciones) el 20/09/2002 15:26:14
Debes incluir los siguientes archivos de cabecera

#include <dirent.h>
#include <sys/types.h> /* No estoy seguro si este es necesario */
#include <sys/stat.h> /* Tampoco estoy seguro de este */

DIR *pDir;
struct dirent *pdInfo;

if ( !(pDir = opendir("Ruta/de/donde/debes/leer/los/archivos/")) )
{
/* Buscar archivos para procesar */
while ( (pdInfo = (struct dirent *)readdir_r(pDir, &pdInfo)) )
{
if ( *pdInfo->d_name == '.' )
continue; /* Obviamos los directorios . y .. */

.... pdInfo->d_name ..... /* este es el nombre de archivo encontrado uno a uno */
closedir ( pDir );

}
}
else
{
/* Ocurrió un error y no se pudo acceder al directorio */
}

Eso es todo.

Salu2
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar