Entwickler-Ecke

Dateizugriff - Wieviele Dateien in einem Verzeichnis?


Pyr0cracker - Di 25.03.03 16:34
Titel: Wieviele Dateien in einem Verzeichnis?
Hallo,
wie kann ich rausfinden wie viele dateien in einem verzeichnis vorhanden sind?
danke schon mal,


FriFra - Di 25.03.03 17:04

Such mal in der Hilfe nach FindFirst bzw. TSearchRec...
Du musst dann für jeden gefundenen Eintrag nur noch prüfen ob es ein Verzeichnis ist bzw. eine Datei... wenn die das egal ist, kannst Du die Anzahl der Ergebnisse auch direkt weiterverwenden...


GruppeCN - Di 25.03.03 17:07

Etwas umständlich geht es mit einer verstekcten FileListBox. Du musst dann einfach über

Quelltext
1:
FileListBox1.Directory := 'C:\Texte';                    

den Pfad zuweisen und dann die Nummer so abfragen:

Quelltext
1:
variable := FileListBox1.Items.Count;                    


Es geht bestimmet auch nicht so umständlich, aber dies ist auch eine möglichkeit.


ShadowCaster - Di 25.03.03 17:13


Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
function VerzDateiCount(Verzeichnis:string):longint;
var
  SR : TSearchRec;
begin
  Result := 0;
  if Verzeichnis[length(Verzeichnis)]<>'\' then
    Verzeichnis:=Verzeichnis+'\';
  if FindFirst(Verzeichnis+'*.*',$3F,SR)=0 then begin
    repeat
      if ((SR.Attr and faAnyFile)>0) and ((SR.Attr and faDirectory)<1) then
        inc(Result);
    until FindNext(SR)<>0;
    FindClose(SR);
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  ShowMessage(IntToStr(VerzDateiCount('C:\winnt\')));
end;


Hier mein Beispiel. Etwas quick and very dirty aber es läuft nach meinen Tests.

ACHTUNG: Es werden keine Unterverzeichnisse einbezogen! Du kriegst nur die Infos im angegebenen Verzeichnis, wieviele Dateien du darin hast. Ich hab die Funktion getestet. Sie läuft zumindest.

http://www.delphi-fundgrube.de/faq03.htm

dort findest du weitere Routinen!


Pyr0cracker - Mi 26.03.03 10:57

@ShadowCaster: Danke, genau das habe ich gesucht.