Entwickler-Ecke
Windows API - Verwendete speicher platz von einem dir
Sauger Chris - Sa 29.12.07 15:30
Titel: Verwendete speicher platz von einem dir
moin
meine frage wie kann ich den verwendeten speicher platz von einem dir (c:\logs\) heraus finden
ps. möglichst schnell und einfach :)
danke für eure hilfe
Tilo - Sa 29.12.07 16:47
Einfach: Alle Datei(auch die in den Unterordner) ermitteln und deren Größe addieren.
Schlagwörter:
FindFirst, FindNext
Sauger Chris - Sa 29.12.07 17:44
habs mal so gemacht
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32:
| function GetFolderSize(folder: String): Integer; var sr: TSearchRec; r, size: int64; f: File; begin size := 0; r := FindFirst(folder + '\*.*', faAnyFile, sr); while (r = 0) do begin if copy(sr.name, 1, 1) <> '.' then begin if ((sr.Attr and faDirectory) <> 0)then size := size + GetFolderSize(folder + '\' + sr.name) else begin AssignFile(f, folder + '\' + sr.Name); Reset(f); size := size + FileSize(f); CloseFile(f); end; end; Application.ProcessMessages; r := FindNext(sr); end; FindClose(sr); result := size; end;
procedure TForm1.Button1Click(Sender: TObject); begin edit1.Text := inttostr(GetFolderSize('c:\ant\')*100); end; |
ps. is aber glaub ich nicht so genau und dauert ne weile kann man das irgend wie schneller machen ??
Yogu - Sa 29.12.07 17:54
Du könntest dich bei den Windows-Shell-Funktionen bedienen. Vielleicht gibt es da eine Methode, die das für dich erledigt. Aber schneller geht die dann auch nur, weil sie auf Assembler basiert, was du mit viel Aufwand auch so hinbekommen könntest.
DrRzf - Sa 29.12.07 18:24
Assembler muss ncit schneller sein als Delphi Code.
Und in dem fall kommts auch eher auf die Festplattengeschwindigkeit an, der Prozzi wartet sich hier sowiso nen Wolf bis die Pladde die daten bereitstellt.
Yogu - Sa 29.12.07 18:57
Aber die Shell benutzt diese Chache-Informationen, was heißt, dass jeder Ordner nur einmal abgefragt werden muss. Wenn er schonmal ermittelt wurde, geht das ganze dann rucki-zucki. Aber stimmt schon, ASM bringt hier wohl wenig.
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!