![]() |
Verzeichnisgröße ermitteln
Hi,
wie kann ich die Größe eines Verzeichnisses (inkl. Untervrezeichnisse) herausbekommen? Chris |
Delphi-Quellcode:
Hoffe es funzt, aus SwissdelphiCeter
function GetDirSize(dir: string; subdir: Boolean): Longint;
var rec: TSearchRec; found: Integer; begin Result := 0; if dir[Length(dir)] <> '\' then dir := dir + '\'; found := FindFirst(dir + '*.*', faAnyFile, rec); while found = 0 do begin Inc(Result, rec.Size); if (rec.Attr and faDirectory > 0) and (rec.Name[1] <> '.') and (subdir = True) then Inc(Result, GetDirSize(dir + rec.Name, True)); found := FindNext(rec); end; FindClose(rec); end; procedure TForm1.Button1Click(Sender: TObject); begin label1.Caption := FloatToStr(GetDirSize('e:\download', False) / Sqr(1024)) + ' MBytes'; label2.Caption := FloatToStr(GetDirSize('e:\download', True) / Sqr(1024)) + ' MBytes'; end; |
Stimmt und funzt...
Danke Chris |
Moin Zusammen,
und ich werd's einfach nicht müde darauf hinzuweisen :mrgreen: ... (rec.Name[1] <> '.') ... ist falsch. Es muss ... (rec.Name <> '.') and (rec.Name <> '..') ... lauten. |
Re: Verzeichnisgröße ermitteln
hallo.
ich habe diesen source-code mal ausprobiert, aber bei mir meldet er immer den fehler "Ungültiges Zeichen in Eingabedatei:' '($A0)" beim compilieren. habe ich eine unit vergessen?? oder habe ich irgendwo vergessen mein verzeichniss anzugeben?? thx im voraus ninja :roll: |
Re: Verzeichnisgröße ermitteln
Hai ninja,
beim copy und paste sind da fehlerhafte Zeichen in deinen Editor gekommen. Lösche mal die Leerzeichen am anfang jeder Zeile. |
Re: Verzeichnisgröße ermitteln
stimmt.
danke, werd ich mir gleich hinter die ohren schreiben, damit sowas nicht nochmal passiert. greetz ninja :zwinker: |
Re: Verzeichnisgröße ermitteln
hallo.
ich habe da noch mal eine frage dazu, und zwar möchte ich gerne die ausgelesene verzeichnissgröße weiterverwenden und weitergeben z.B. zum Umrechnen oder an eine Progressbar als Max-Wert. ich habe es auch schon versucht, bin aber an der Variablendeklaration gescheitert. Probleme habe ich z.B. mit der Umwandlung der Variablen. Ich weis nicht genau wann ich z.B. StrToInt oder IntToStr einsetzen muß. Oder was ich überhaupt nehmen muß um die Werte weiterzugeben. Vieleicht kann mir ja jemand helfen. Thx im vorraus ninja |
Re: Verzeichnisgröße ermitteln
1.
Delphi-Quellcode:
Var G: LongInt;
G := GetDirSize('e:\download', True); {G enthält die Größe des Verzeichnisses (inkl. Untervrezeichnisse) in Byte} 2.
Delphi-Quellcode:
aus der OH:
StrToInt: String => Integer
IntToStr: Integer => String Zitat:
Zitat:
|
Re: Verzeichnisgröße ermitteln
danke funktioniert.
hab da noch eine frage dazu , wie bekomme ich diesen jetzt noch durch eine beliebige zahl geteilt, z.B. 600 KB/s, ich möchte nämlich die zeit ausrechnen und diese dann in der Progressbar ablaufen lassen. gruß ninja |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:26 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz