C/Visual C - Programa en C

 
Vista:

Programa en C

Publicado por ico (2 intervenciones) el 07/12/2006 19:34:40
Muy buenas, me gustaria saber si alguien me podria ayudar con un codigo de C. Necesito hacer un ls -R, es decir, hacer un listado del directorio actual y de todos sus subdirectorios, recorriendolo hasta el final, si hay un directorio dentro de esos subdirectorios tambien recorrerlos.
Muchas gracias
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:Programa en C

Publicado por Fran (122 intervenciones) el 07/12/2006 20:51:09
depende del sitemas de archivos q uses... y el sistema obviamente dire aeso, bajo a VFS de linux, tan solo es opendir y readdir te va tirando las cosas hasta q no haya mas nada
suerte! si podes especifica un toq mas
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:Programa en C

Publicado por ico (2 intervenciones) el 09/12/2006 11:52:44
Veamos, el programa es en C, para linux, y tengo que hacer un Listado recursivo (ls -R): sólo tiene efecto sobre directorios. Consiste en repetir el listado no sólo para el directorio actual sino para todo el árbol de subdirectorios, recorriéndolo en profundidad. Su funcionamiento debe ser similar al de la opción homóloga del comando ls.
Y el problema que tengo es que listo facilmente el primer directorio, pero luego intento comprobar si hay directorios dentro de ese directorio, y nose si lo hago bien pq luego intento listar esos directorios que hay dentro y no me los abre y me da error.
Muchas gracias
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:Programa en C

Publicado por Fran (122 intervenciones) el 10/12/2006 08:27:54
linux! genial!
hace man stat... man 2 readdir... man 2 opendir
vas a ver muchas cosas entre las cuales hay unas ciertas flags q t van a permitir ver q tipo de archivo es, y es mas, podes preguntar, por ej; O_ISDIR si no me equivoco es una, si me equivoco fijate en man stat que ahi estan, al aplicar stat a una ruta vas a poder obtener todo lo referente a esta ruta q en verdad es el nombre del archivo... ahora... esos flags q t dicen si es directorio archivo o symlink lo podes usar de forma tal q si es directorio repetir la misma funcion invocante sobre el... esto generaria una onda linda de recursion q es lo q deberias hacer...

informalmente en MI pseudocodigo horrible:

funcion lsrec(pathname p)
mientras(a)
begin. a=readdir()
if(a es directorio) // esto lo dira stat
lsrec(a);
end.
end funcion

SUERTE!
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