![]() |
anzahl aller dateien auf einem pc
der titel dieses themas beschreibt mein anliegen sehr gut.
ich suche nach einer möglichkeit die anzahl der dateien auf einem pc zu bestimmen. eine möglichkeit wäre ja mit findnext und dabei eine variable hochzuzählen inc(i). das dauert mir aber zu lange. :roll: gibts noch ne andere möglichkeit :?: kaemmi |
Re: anzahl aller dateien auf einem pc
Nicht das ich wüßte.
|
Re: anzahl aller dateien auf einem pc
hallo,
es gibt ne Möglichkeit, ist aber extrem umständlich. Du startest einen Kommandozeilenbefehl dir *.* /S > i.dat Das erzeugt dir eine Datei i.dat in der am Ende alles drin steht. Aber wie gesagt sehr sehr umständlich. nimoee |
Re: anzahl aller dateien auf einem pc
hallo,
in der letzetn Zeile steht die Information. Allerdings nur für diese Partition. nimoee |
Re: anzahl aller dateien auf einem pc
Ich denke aber, dass es mit FindNext etc schneller geht, weil diese BEfehle schneller sind...
Gerade mit dem NTSF-System... |
Re: anzahl aller dateien auf einem pc
Hallo,
quatsch sorry Alexander ( du weisst nicht wovon ich rede ) nimoee |
Re: anzahl aller dateien auf einem pc
@ Nimoe:
Wenn, dann würd ich
Code:
verwenden, denn es gibt ja auch Dateien ohne Endung.
dir * /s > Ausgabedatei
|
Re: anzahl aller dateien auf einem pc
dann wolln wir das jetzt mal testen...
danke soweit :chat: |
Re: anzahl aller dateien auf einem pc
DIR benutzt auch die APIs (FindFirstFile und FindNextFile ... genau wie Delphi). @Nimoee: Entsprechend hat alexander nicht unrecht!
Außerdem stimmt Chewies Aussage nicht: es darf auch *.* heißen. *.* ist einfach das Wildcard für "alle Dateien" |
Re: anzahl aller dateien auf einem pc
Echt? Ich dachte, * wäre die Wildcard und das Muster *.* steht für alle Dateien mit Endung (also mit Punkt).
Ist aber klar, es werden ja auch Ordner mit aufgelistet, die haben ja auch keinen Punkt :oops: |
Re: anzahl aller dateien auf einem pc
Liste der Anhänge anzeigen (Anzahl: 1)
für alle die es interessiert - ich habs jetzt mit findnext realisiert.
als attachment das resultat. also bei mir waren es zum schluss (nach endlosem warten) 12878 files auf der c partition. offen bleiben noch e und f :wink: thx :dance: ich find diesen smily sowat von lustich |
Re: anzahl aller dateien auf einem pc
:arrow: kaemmi
ich hatte mir grad ma das zipfile geladen. Die exe kann ich starten. Nur wenn ich das Projekt neu compilieren will, bringt er mir ne Fehlermeldung unzwar:
Code:
An dieser Stelle
Undefinierter Bezeichner 'timer'
Delphi-Quellcode:
Da du ja denke ich mal der Entwickler bist, wende ich mich an dich! Wie warn das mit Timer gedacht???
procedure TForm1.Button1Click(Sender: TObject);
begin GetFilesInDirectory('C:\','*.*',Listbox1.Items,timer); end; :dp: |
Re: anzahl aller dateien auf einem pc
die funktion GetFilesInDirectory verlangt 4 Parameter.
1. Das Verzeichnis 2. die Suchmaske (*.*) 3. ne Listbox, in die die Ergebnisse eingetragen werden können und 4. TRUE oder FASLE frag mich nicht wie da timer hinkommt. war selber überrascht :shock: also...wenn du true einsetzt, werden alle unterverzeichnisse durchsucht. bei false nur das aktuelle unter Punkt 1. angegebene verz. jetzt sollte es funktionieren :corky: schönes wochenende noch, kaemmi :dance: |
Re: anzahl aller dateien auf einem pc
Moin Moin!
Yo schönen Dank! Es funzt!!! Gibt es auch ne möglichkeit den Vorgang individuell abzubrechen, z.B. fürn "abbrechen" Button??? |
Re: anzahl aller dateien auf einem pc
natürlich:
erstmal musst du eine globale varibale erstellen. ich hab mal
Delphi-Quellcode:
genommen.
var abort:boolean;
um die procedure dann abzubrechen, musst du abort auf true setzten. und hier die modifizierte version von getAllFilesInDirectory
Delphi-Quellcode:
und, funzt es?
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 begin AList.Add(ADirectory+SR.Name); inc(count); unit1.Form1.Label1.Caption:=IntToStr(count); Application.ProcessMessages; end; if abort=true then exit; //<< Procedure beenden 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 begin GetFilesInDirectory(ADirectory+SR.Name,AMask,AList,True); inc(count); unit1.Form1.Label1.Caption:=IntToStr(count); Application.ProcessMessages; end; if abort=true then exit; //<< Procedure beenden until FindNext(SR)<>0; FindClose(SR); end; end; tschö, kaemmi :D |
Re: anzahl aller dateien auf einem pc
Öhm... :oops: also entweder verpeil ich hier was oder es sieht so aus, als wolle in die prozedur "exit" wenn abort=true is. Nur die prozedur geibts nich. Oder muss ich nochwas einbinden?
|
Re: anzahl aller dateien auf einem pc
Hehe..un ich war zu blind...hab die Variablen nich an der richtigen Stelle gehabt. Also es funzt. THX
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:42 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