Entwickler-Ecke
Dateizugriff - Dateien und Ordner zählen
TOMahawk85 - Mo 15.05.06 17:29
Titel: Dateien und Ordner zählen
Hallo liebe Forumfreunde,
der Titel mag den einen oder anderen Nerven, aber mein Problem diesbezüglich konnte noch nicht ganz gelöst werden (auch mit der Suche nicht).
Wie ich die Dateien/Ordner in einer Listbox oder einem Memo speichern kann ist auch mir inzwischen gelungen. Aber ich brauche die Dateien nicht in einer Listbox o.ä., sondern will nur die Anzahl der Dateien/Ordner wissen.
Ich habe versucht bei den Programmausschnitten mit Listbox/Memo eine Variable fürs zählen einzubauen, allerdings liefert die mir absurd hohe Werte.
Wie man nun hoffentlich sieht unterscheidet sich meine Frage leicht von den Antworten, die andere schon erhalten haben.
Ich bin für jede Hilfe überaus dankbar,
TOMahawk85
P.S. Der Idealfall wäre, wenn jede Datei (nicht Ordner) mit dazugehöriger Größe in Byte nebeneinander in einem Feld gespeichert wird + eine Zählervariable für die Anzahl.
Hansi@OMG - Di 16.05.06 08:17
Wie wärs dann mit dieser Lösung:
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: 33: 34: 35:
| procedure GetFilesInDirectory(ADirectory: string; AMask: String; AList: TStrings; ARekursiv: Boolean); var SR: TSearchRec; begin if (ADirectory<>'') and (ADirectory[length(ADirectory)]<>'\') then ADirectory:=ADirectory+'\';
if (FindFirst(ADirectory+AMask,faAnyFile-faDirectory,SR)=0) then begin repeat if (SR.Name<>'.') and (SR.Name<>'..') and (SR.Attr<>faDirectory) then AList.Add(ADirectory+SR.Name) until FindNext(SR)<>0; FindClose(SR); end;
if ARekursiv then if (FindFirst(ADirectory+'*.*',faDirectory,SR)=0) then begin repeat if (SR.Name<>'.') and (SR.Name<>'..') then GetFilesInDirectory(ADirectory+SR.Name,AMask,AList,True); until FindNext(SR)<>0; FindClose(SR); end; end;
procedure TForm1.Button1Click(Sender: TObject); var templist : Tstringlist; begin templist:=tstringlist.create; GetFilesInDirectory('C:\test\','*.*',templist,False); showmessage(inttostr(templist.Count)); templist.free; end; |
Du lädst dir die Dateien nicht in eine Listbox oder in ein Memo, sondern nur in eine temporäre Stringlist und lässt dir dann einfach ausgeben, wie viele Einträge in der Liste sind.
ZeitGeist87 - Di 16.05.06 08:27
Hab grad mal schnell n Beispiel zamgeschustert
Hoffe ist das was du suchst
Quelltext ist eigentlich dokumentiert =)
lg
Stefan
TOMahawk85 - Di 16.05.06 14:13
Titel: Ich mag gute und schnelle Antworten
Vielen Dank,
ich hab mich ja erst gestern hier im Forum angemeldet und bin überaus positiv überrascht, wie gut die Hilfe hier ausfällt. Gestern hat eine Antwort gerade mal 7 Minuten gedauert und heute bekomme ich sogar ein fertiges Programm.
Dafür gebührt größter Respekt.
Ich werde auf jeden Fall beide Varianten probieren und möchte mich noch mal bedanken, dass so schnell kompetente Antworten kamen.
Hoffe man liest voneinander,
TOMahawk85
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 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!