Ver Mensaje Individual
  #1 (permalink)  
Antiguo 09/11/2009, 18:41
Avatar de pato12
pato12
 
Fecha de Ingreso: septiembre-2007
Ubicación: Salta
Mensajes: 1.620
Antigüedad: 17 años, 6 meses
Puntos: 101
Escanear carpeta entera.. anda mal :S

Hola,
Estoy intentando hacer un codigo que me liste todos los archivos y carpetas ( y los archivos de las carpetas ) de una carpeta.
Es decir, si quiero escanear C:\Prueba y en Prueba tengo otra carpeta que se llama Prueba2 que me liste los archivos de esa carpeta tambien. Este es mi codigo:
Código c++:
Ver original
  1. #include <iostream>
  2. #include <string>
  3. #include <windows.h>
  4. #include <cstdio>
  5. using namespace std;
  6. void directorioDatos(char dir[], char formato[]){
  7.     WIN32_FIND_DATA wFindData;
  8.     HANDLE hFile;
  9.     BOOL NextFile = TRUE;  
  10.     char temp[100]="";
  11.     sprintf(temp, "C:\\Prueba\\%s*.%s", dir, formato);
  12.     hFile = FindFirstFile( temp, &wFindData );
  13.     if( hFile != INVALID_HANDLE_VALUE ) {
  14.         while( NextFile ) {
  15.             if( wFindData.dwFileAttributes == FILE_ATTRIBUTE_DIRECTORY) {
  16.                 sprintf(temp, "%s", wFindData.cFileName);
  17.                 if(temp!="."&&temp!=".."){
  18.                     sprintf(temp, "%s%s\\", dir, wFindData.cFileName);
  19.                     cout<<"CARPETA: C:\\Prueba\\"<<temp<<"\n";
  20.                     directorioDatos(temp,formato); // Escaneamos los archivos
  21.                 }
  22.             }else{
  23.                 cout<<"ARCHIVO: C:\\Prueba\\"<<dir<<wFindData.cFileName<<"\n";
  24.             }
  25.             NextFile = FindNextFile( hFile, &wFindData );
  26.         }
  27.     }
  28.    
  29.     CloseHandle( hFile );
  30. }
  31. int main(int argc, char *argv[]) {
  32.     char dir[100]="",fomato[100]="*";
  33.     directorioDatos(dir,fomato);
  34.     return 0;
  35. }
Gracias
Salu2
__________________
Half Music - www.halfmusic.com