Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Leggere file in directory e sottodirectory
Forum - C/C++ - Leggere file in directory e sottodirectory

Avatar
marco.quaglia (Normal User)
Newbie


Messaggi: 2
Iscritto: 30/10/2012

Segnala al moderatore
Postato alle 10:21
Mercoledì, 31/10/2012
Ciao sono nuovo del forum ed un programmatore c++ Builder fai da te, quindi spero di non essere banale nella mai richiesta. Sto scrivendo un programma che legga i file presenti in un disco, directory e sottodirectory comprese.Nel  testarlo mi sono reso conto che è circa 10 volte + lento del comando DOS “dir /s c:\*.*”
Qualcuno sa perchè?
grazie
Codice sorgente - presumibilmente C++

  1. //---------------------------------------------------------------------------
  2. void ListDir(AnsiString Folder)
  3. {
  4.   TSearchRec sr;
  5.   bool Child = true;
  6.  
  7.   int done = (FindFirst(Folder, faAnyFile, sr));
  8.   while(!done){
  9.         if (sr.Name[1] != '.') { //Elimina la direcotory radice '.'
  10.                 AnsiString s = Folder.SubString(1, Folder.Length()-3)+ "\\" + sr.Name;
  11.                 cout << s.c_str() << endl;
  12.                
  13.                 if(((sr.Attr & faDirectory) == faDirectory) && (sr.Name[1] != '.')) {
  14.                         AnsiString temp = Folder;
  15.                          ListDir(temp.SubString(1, Folder.Length()-3)+sr.Name+"\\*.*");
  16.                        
  17.                 }
  18.         }
  19.         done = FindNext(sr);
  20.   } ;
  21.   FindClose(sr);
  22.  
  23. }


PM Quote
Avatar
HeDo (Founder Member)
Guru^2


Messaggi: 2765
Iscritto: 21/09/2007

Segnala al moderatore
Postato alle 11:23
Mercoledì, 31/10/2012

lo hai compilato in release?

PM Quote
Avatar
marco.quaglia (Normal User)
Newbie


Messaggi: 2
Iscritto: 30/10/2012

Segnala al moderatore
Postato alle 11:59
Mercoledì, 31/10/2012
anche compilano come release è lento, considera che per leggere il mio HD ci mette circa 157 secondi mentre il il comando dir ce ne mette solo 21 :(:(:(

PM Quote
Avatar
carlduke (Member)
Pro


Messaggi: 153
Iscritto: 29/01/2011

Segnala al moderatore
Postato alle 20:40
Giovedì, 01/11/2012
potresti provare e suddividere tutto in piu' thread.. non saprei, tienici aggiornati ;)

PM Quote