Underc0de

Programación General => C / C++ => Códigos Fuentes => Mensaje iniciado por: linkgl en Agosto 14, 2011, 02:56:00 PM

Título: Listar directorios recursivamente
Publicado por: linkgl en Agosto 14, 2011, 02:56:00 PM
El código salió ayudando a un usuario en un foro, lista los directorios que hay dentro de una ruta y los subdirectorios todoosss también xD perfecto como para hacer un buscador ¿?, no me molesté en optimizarlo porque precisamente no fue algo planeado xD

xD
#include <windows.h>
#include <string.h>
#include <stdio.h>
#include <ctype.h>


void listarr(LPSTR szDirectorio,LPSTR szNDirectorio)
{
 
  int decoracion_bonita_de_linkgl=1;
  WIN32_FIND_DATA wfd;
  HANDLE ff;
  ff=FindFirstFile(szDirectorio,&wfd);
  if(ff!=0)
  {
    while(FindNextFile(ff,&wfd)!=0)
    {
      if(wfd.dwFileAttributes==FILE_ATTRIBUTE_DIRECTORY)
      {
        if((strcmpi(wfd.cFileName,".")!=0)&&(strcmpi(wfd.cFileName,"..")!=0))
        {
          //printf("%s \n",wfd.cFileName);
          char temp[260]={'\0'};
          char szCDirectorio[260]={'\0'};
          strcpy(szCDirectorio,szNDirectorio);
          strcat(szCDirectorio,wfd.cFileName);
          strcat(szCDirectorio,"/");
          strcpy(temp,szCDirectorio);
          strcat(temp,"*.*");
           
          printf("%s\n",temp);
          //->impresion
          char imp[260]={'\0'};
          strcpy(imp,szNDirectorio);
          strcat(imp,wfd.cFileName);
          strcat(imp,"/");
          //printf("%s\n",imp);
          listarr(temp,szCDirectorio);
        }
      }
    }
  }
  else
  {
    printf("handle error");
  }
}
int main()
{
  listarr("C:/*.*","C:/");
  printf("fin");
  getchar();
  return 0;
}