Entwickler-Ecke
Dateizugriff - Progress bei einem Verzeichnisdurchlauf
Tweafis - Do 19.06.03 11:42
Titel: Progress bei einem Verzeichnisdurchlauf
Sorry für den Themanamen, aber mir fiel nix besseres ein. Ich möchte während ich ein Verzeichnis durchlaufe und die Dateien verarbeite (kopiere bzw. verlinke) eine Progressbar aktualisieren die den aktuelen Stand anzeigt. Ich möchte aber nur im Notfall nach Dateianzahl gehen, da die Dateien unterschiedlich groß sind. Lieber wäre mir wenn ich erst die gesamtgröße der Dateien im Verzeichnis auslese und dann den Prozentsatz der schon verarbeiteten Dateiengröße an dem insgesamten ausrechne und anzeige. Hat vielleicht jemand eine bessere idee?
Habe es mit der Funktion
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| function GetDirectorySize(Dir: string; Ext: string): Integer; var SR: TSearchRec;
begin result := 0;
if FindFirst(Dir+'*.'+Ext, faAnyFile - faDirectory, SR) = 0 then begin result := result + SR.Size; while (FindNext(SR) = 0) do result := result + SR.Size; end; end; |
probiert, gibt aber immer 0 zurück.
Delete - Do 19.06.03 18:31
Ich vermute mal, du rufst die Funktion so auf
Delphi-Quelltext
1:
| GetDirectorySize('c:\Ordnername','txt'); |
Das kann nichts werden, weil dann der String
entsteht. Du musst also nach dem Ordnernamen noch einen Backslash angeben.
Delphi-Quelltext
1:
| GetDirectorySize('c:\Ordnername\','txt'); |
Oder du ergänzt diesen Backslash in deiner Funktion
vor dem Sternchen. Dann geht´s.
Aber, ich vermisse ohnehin das
FindClose.
Das solltest du unbedingt noch ergänzen.
Gruß.
Tweafis - Do 19.06.03 18:34
THX, hab FindClose ergänzt und es lag an dem was du sagtest. Hätte vielleicth ein wenig debuggen sollen ;)
THXXXXX
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!