Ver Mensaje Individual
  #14  
Antiguo 08-12-2013
darkmir darkmir is offline
Miembro
NULL
 
Registrado: abr 2013
Posts: 28
Reputación: 0
darkmir Va por buen camino
Cita:
Empezado por ecfisa Ver Mensaje
Hola.

Me quedó la duda del por qué del error, y según parece lo causa la función ChDir que es la diferencia significativa entre el código de escafandra que funciona correctamente y la segunda opción que te sugerí en el mensaje #2 que da el error. Pero ignoro por qué causa lo provoca, me imagino que no está preparada para soportar los nuevos nombres...

Para sumar opciones, otro modo es:
Código:
void ListFiles(String folder, TStrings *TS)
{
  WIN32_FIND_DATA wfd;
  HANDLE hFind;
  DWORD ERR;

  hFind = FindFirstFile(String(folder + "\\*.*").c_str(), &wfd);
  if (hFind != INVALID_HANDLE_VALUE) {
    do {
      if (String(wfd.cFileName) != "." && String(wfd.cFileName) != "..") {
        if (wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
          ListFiles(String(folder+"\\"+wfd.cFileName), TS);
        else
          TS->Add(String(folder+"\\"+wfd.cFileName));
      }
    } while(FindNextFile(hFind, &wfd));
    FindClose(&wfd);
  }
}
Llamada:
Código:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
    ListFiles("C:\\Windows", ListBox1->Items);
}
Saludos
Hola ecfisa,

probe el código pero me manda este error , al escanear cualquier unidad:



algo que ver con la memoria, quizás?

Saludos.
Responder Con Cita