moin,
wie groß sind denn die einzelnen Dateien? d.h. sind es viele kleine oder wenige große oder gemischt? Wenn du den gesamt Status errechnen willst würde ich einfach erst alle Dateien suchen und auflisten und dann nacheinander abarbeiten/kopieren.
Zum durchsuchen würd ich dann so was hier verwenden:
Delphi-Quellcode:
procedure TForm1.searchFiles(start: String);
var srResult: TSearchRec;
begin
application.ProcessMessages;
If Stop then exit;
if FindFirst(start+'*.*',faAnyFile,srResult)=0 Then
begin
while (FindNext(srResult)=0) Do
begin
Application.processMessages;
if (srResult.Attr=faDirectory)
and (srResult.name<>'.')
and (srResult.name<>'..') Then
begin
// Falls es sich um ein Verzeichnis handelt, rek. aufrufen
searchFiles(start+srResult.name+'\');
end
else
begin
// hier kannst Du dann die Dateien auslesen ...
if (srResult.name<>'.')and (srResult.name<>'..') Then
begin
with StringGrid1 do // statt dem Stringgrid halt ne Stringlist oder so verwenden
begin
cells[0,counter]:=srResult.name; // dateiname
cells[1,counter]:=inttostr(srResult.Size); // dateigröße
cells[2,counter]:=copy(start,length(edit1.Text)+1,100);
// Pfad (relativ zum Suchverzeichnis)
rowcount:=rowcount+1;
end;
inc(counter);
end;
end;
end;
FindClose(srResult);
end
else
begin
ShowMessage('Keine Dateien vorhanden');
end;
end;
Wie sich das mit dem Prozessbar für die einzelne Datei machen lässt weiß ich jetzt auf Anhieb auch nicht..