Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi anzahl aller dateien auf einem pc (https://www.delphipraxis.net/7870-anzahl-aller-dateien-auf-einem-pc.html)

kaemmi 23. Aug 2003 15:08


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

Luckie 23. Aug 2003 15:09

Re: anzahl aller dateien auf einem pc
 
Nicht das ich wüßte.

Nimoee 23. Aug 2003 16:18

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

Nimoee 23. Aug 2003 16:22

Re: anzahl aller dateien auf einem pc
 
hallo,
in der letzetn Zeile steht die Information. Allerdings nur für diese Partition.
nimoee

Alexander 23. Aug 2003 17:56

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...

Nimoee 23. Aug 2003 18:04

Re: anzahl aller dateien auf einem pc
 
Hallo,
quatsch
sorry Alexander ( du weisst nicht wovon ich rede )
nimoee

Chewie 23. Aug 2003 18:07

Re: anzahl aller dateien auf einem pc
 
@ Nimoe:

Wenn, dann würd ich
Code:
dir * /s > Ausgabedatei
verwenden, denn es gibt ja auch Dateien ohne Endung.

kaemmi 23. Aug 2003 19:34

Re: anzahl aller dateien auf einem pc
 
dann wolln wir das jetzt mal testen...

danke soweit :chat:

Assarbad 23. Aug 2003 19:56

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"

Chewie 23. Aug 2003 19:58

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:

kaemmi 23. Aug 2003 20:24

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

Akut-Programming 29. Aug 2003 12:46

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:
Undefinierter Bezeichner 'timer'
An dieser Stelle
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
GetFilesInDirectory('C:\','*.*',Listbox1.Items,timer);
end;
Da du ja denke ich mal der Entwickler bist, wende ich mich an dich! Wie warn das mit Timer gedacht???

:dp:

kaemmi 29. Aug 2003 16:35

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:

Akut-Programming 1. Sep 2003 06:49

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???

kaemmi 1. Sep 2003 13:19

Re: anzahl aller dateien auf einem pc
 
natürlich:
erstmal musst du eine globale varibale erstellen.
ich hab mal
Delphi-Quellcode:
 var abort:boolean;
genommen.
um die procedure dann abzubrechen, musst du abort auf true setzten.
und hier die modifizierte version von getAllFilesInDirectory
Delphi-Quellcode:
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;
und, funzt es?
tschö, kaemmi :D

Akut-Programming 1. Sep 2003 13:38

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?

Akut-Programming 1. Sep 2003 13:45

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