Hallo,
ich muss alle Dateien (ggf. nur die mit vorher definierten Endungen) eines Verzeichnisses einlesen und in einer Ansicht zur Auswahl anbieten. Ich habe schonmal hier gestöbert, aber nichts finden können. Hat jemand ein paar Tips ??
Heiko
Hallo,
ich muss alle Dateien (ggf. nur die mit vorher definierten Endungen) eines Verzeichnisses einlesen und in einer Ansicht zur Auswahl anbieten. Ich habe schonmal hier gestöbert, aber nichts finden können. Hat jemand ein paar Tips ??
Heiko
Hi PM,<br>
<PRE>
Diese Funktion liest rekursiv alle Dateinamen eines Ordners und dessen Unterverzeichnisse in eine Stringliste ein und gibt außerdem als Result die Gesamtgröße des Verzeichnisbaumes zurück:
var VerzListe : TStringList;
function VerzGroesse(Verzeichnis:string):longint;
var SR : TSearchRec;
Groesse : longint;
begin
Groesse:=0;
if Verzeichnis[length(Verzeichnis)]<>'\' then
Verzeichnis:=Verzeichnis+'\';
if FindFirst(Verzeichnis+'*.*',$3F,SR)=0 then begin
repeat
if ((SR.Attr and faDirectory)>0) and (SR.Name<>'.') and (SR.Name<>'..') then
Groesse:=Groesse+VerzGroesse(Verzeichnis+SR.Name)
else
Groesse:=Groesse+SR.Size;
if (SR.Name<>'.') and (SR.Name<>'..') then
VerzListe.Add(Verzeichnis+SR.Name);
until FindNext(SR)<>0;
FindClose(SR);
end;
Result:=Groesse;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
VerzListe:=TStringList.Create;
Label1.Caption:=IntToStr(VerzGroesse('C:\Programme '))+' Byte';
ListBox1.Items.Assign(VerzListe);
VerzListe.Free;
end;
</PRE>
<br>cu Michae
Hallo Michael,<br>
es gibt übrigens die nette Delphi Funktion <b>IncludeTrailingBackslash</b>, die Konstrukte wie:
<pre>
if Verzeichnis[length(Verzeichnis)]<>'\' then
Verzeichnis:=Verzeichnis+'\';
</pre>
überflüssig macht ;-)<p>
Gruß<br>
Luc
Hi Lucas,<br>das kann ja jeder ;-
Lesezeichen