<html>
<head>
<style>
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
FONT-SIZE: 10pt;
FONT-FAMILY:Tahoma
}
</style>
</head>
<body class='hmmessage'>
Wenas , estoy intentando la implementacion de la impresion de  Directorios/ficheros de la siguiente manera :<br><br>
Directorio<br>
[tab]Fichero<br>
[tab]Fichero<br>
Directorio<br>
[tab]Subdirectorio<br>
[tab][tab]Fichero<br>
..<br><br>De momento el codigo q llevo realizado es este :<br><br>#include<stdio.h><br>#include<dirent.h><br>#include<string.h><br>#include<sys/stat.h><br>#include<sys/types.h><br>#include <stdlib.h><br><br>//Prototipos<br>void busqueda(char [],char [],int);<br><br>int main(int argc, char *argv[]){<br><br>    char user [PATH_MAX];<br>    char ruta [PATH_MAX];<br>    int tab=0;    <br><br>    strcpy(user,argv[1]); // Pillamos el nombre del usuario // NO IMPORTA SI HAY ERROR AL NO AŅADIR EL NOMBRE DEL USUARIO // SOLO ES PRUEBA    <br>    getcwd(ruta,PATH_MAX); // Pillamos el directorio actual.<br><br>    busqueda(user,ruta,tab);//Llamamos la funcion recursiva de busqueda de Directorios/archivos.<br>    <br>}<br>void busqueda(char user[],char ruta[],int tab){<br><br>    DIR *directorio;<br>    struct dirent *fichero;<br>    struct stat fich;    <br>    char ficheros [PATH_MAX];<br>    <br>    int i;    <br><br>    directorio = opendir(ruta);<br>    if(directorio==NULL){<br>        printf("Error al abrir el directorio\n");<br>        exit(-1);<br>    }<br>    while ( (fichero=readdir(directorio)) != NULL ){<br>        if ( strcmp(fichero->d_name, "..") != 0 && strcmp(fichero->d_name, ".") != 0 ){<br>            strcpy (ficheros, ruta);<br>            strcat (ficheros, "/");<br>            strcat (ficheros, fichero->d_name);<br>            if ( (lstat(ficheros, &fich)) == -1 ){    //obtenemos la informacion del archivo
<br>                    fprintf( stderr, "\nNo se pudo obtener la informacion del fichero:\n" );<br>                    fprintf( stderr, "\t%s\n\n", ficheros);<br>            }            <br>            //-tree? xD<br>            if(S_ISDIR(fich.st_mode)){ //Encontramos un directorio, y aumentamos tab+1 para tabular los archivos q contiene<br>                for(i=0;i<tab;i++) <br>                    printf("\t");                                <br>                printf("%s \n",fichero->d_name);<br>                tab=tab+1;                            <br>            }<br>            else{ <br>                for(i=0;i<tab;i++)<br>                    printf("\t");                        <br>                printf("%s \n",fichero->d_name);<br>            }    <br>            //recursiva<br>            if(S_ISDIR(fich.st_mode))    <br>                busqueda(user,ficheros,tab);        <br>        }<br>    }<br>    closedir(directorio);    <br>}<br><br>Por supuesto , el problema solo radica en la impresion "-tree" . Ahora
mismo lo unico que hce es tabular , cuando ve que es un directorio,
pero no se volver al principio de linea para el siguiente. Alguien me
puede echar una manita? <br>
<br>
Gracias.<br><br /><hr />Express yourself instantly with MSN Messenger! <a href='http://clk.atdmt.com/AVE/go/onm00200471ave/direct/01/' target='_new'>MSN Messenger</a></body>
</html>