Oppure

Loading
31/10/12 9:21
marco.quaglia
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
//---------------------------------------------------------------------------
void ListDir(AnsiString Folder)
{
  TSearchRec sr;
  bool Child = true;
 
  int done = (FindFirst(Folder, faAnyFile, sr));
  while(!done){
	if (sr.Name[1] != '.') { //Elimina la direcotory radice '.'
		AnsiString s = Folder.SubString(1, Folder.Length()-3)+ "\" + sr.Name;
		cout << s.c_str() << endl;
		
		if(((sr.Attr & faDirectory) == faDirectory) && (sr.Name[1] != '.')) {
			AnsiString temp = Folder;
			 ListDir(temp.SubString(1, Folder.Length()-3)+sr.Name+"\*.*");
			
		}
	}
	done = FindNext(sr);
  } ;
  FindClose(sr);
 
}
aaa
31/10/12 10:23
HeDo

lo hai compilato in release?
aaa
31/10/12 10:59
marco.quaglia
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 :(:(:(
aaa
01/11/12 19:40
carlduke
potresti provare e suddividere tutto in piu' thread.. non saprei, tienici aggiornati ;)
aaa