Ver Mensaje Individual
  #13  
Antiguo 07-12-2013
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Reputación: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
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
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 07-12-2013 a las 14:33:41. Razón: Agregar código
Responder Con Cita