Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Ordner suche - "." und ".." werden gefunden (https://www.delphipraxis.net/74460-ordner-suche-und-werden-gefunden.html)

xZise 3. Aug 2006 15:33


Ordner suche - "." und ".." werden gefun
 
Wenn ich einen Ordner durchsuche:
Delphi-Quellcode:
if FindFirst(path + 'GameData\Cache\*.*', faAnyFile, sr) = 0 then begin
  repeat
    if FileExists(path + 'GameData\Cache\' + sr.Name) then begin
      inc(FilesNum);
      DeleteFile(path + 'GameData\Cache\' + sr.Name);
      pbStatus.Max := Succ(pbStatus.Max);
      pbStatus.StepIt;
      Form2.Repaint;
    end;
  until FindNext(sr) <> 0;
  FindClose(sr);
end;
Dann findet er die Dateien "." und ".."! Wie kann ich das verhindern?
Er soll aber alle anderen Dateien finden (sozusagen: suche nach *.* außer ..* und ...*)

3_of_8 3. Aug 2006 15:35

Re: Ordner suche - "." und ".." werden g
 
Delphi-Quellcode:
if (FileExists(path + 'GameData\Cache\' + sr.Name)) and ((sr.Name<>'.') or (sr.Name<>'..')) then begin

xZise 3. Aug 2006 15:36

Re: Ordner suche - "." und ".." werden g
 
Wegen diesem Pänomen ist ja das FileExists drinne (weil sie von FileExists nicht gefunden werden). Allerdings soll er est gar nicht bei FindFirst anspringen ;)

arbu man 3. Aug 2006 15:38

Re: Ordner suche - "." und ".." werden g
 
"." und ".." sind keine Dateien es sind Verzeichnisse :wink:

Also musst da das überprüfen:
Delphi-Quellcode:
if (SR.Attr <> faDirectory) then
begin
//dann is es ein file
end;

xZise 3. Aug 2006 15:42

Re: Ordner suche - "." und ".." werden g
 
Zitat:

Zitat von xZise
Allerdings soll er erst gar nicht bei FindFirst anspringen ;)

Und das würde er auch da tun...

Aber ich habe das in der DH gelesen:
Zitat:

For example, to search for read-only and hidden files in addition to normal files, pass (faReadOnly + faHidden)
Gibts vielleicht eine möglichkeit: faAnyFile und nicht faDirectory?

[edit] :spin2: :roteyes: o.O Cool mit faAnyFile + not faDirectory funktionierts O.o :roteyes: :spin2:
Vielleicht kann man auch direkt Verzeichnisse verbieten :P[/edit]

himitsu 4. Aug 2006 11:57

Re: Ordner suche - "." und ".." werden g
 
bei solchen Bitsachen würde ich dir ein binäres OR empfehelen und keine mathematisches +

Delphi-Quellcode:
faAnyFile or not faDirectory

sakura 4. Aug 2006 12:03

Re: Ordner suche - "." und ".." werden g
 
Zitat:

Zitat von himitsu
bei solchen Bitsachen würde ich dir ein binäres OR empfehelen und keine mathematisches +

aber :!: ein and, nicht or ;)
Delphi-Quellcode:
faAnyFile and (not faDirectory)
...:cat:...

himitsu 4. Aug 2006 13:22

Re: Ordner suche - "." und ".." werden g
 
Zitat:

Zitat von sakura
Zitat:

Zitat von himitsu
bei solchen Bitsachen würde ich dir ein binäres OR empfehelen und keine mathematisches +

aber :!: ein and, nicht or ;)
Delphi-Quellcode:
faAnyFile and (not faDirectory)
...:cat:...

upps ... jooo, also ein

and not

oder

or


:oops:

Nicolai1234 4. Aug 2006 13:27

Re: Ordner suche - "." und ".." werden g
 
Zitat:

Zitat von himitsu
Zitat:

Zitat von sakura
Zitat:

Zitat von himitsu
bei solchen Bitsachen würde ich dir ein binäres OR empfehelen und keine mathematisches +

aber :!: ein and, nicht or ;)
Delphi-Quellcode:
faAnyFile and (not faDirectory)
...:cat:...

upps ... jooo, also ein

and not

oder

or


:oops:

aber and not und or wäre doch was anderes, oder?

himitsu 4. Aug 2006 13:29

Re: Ordner suche - "." und ".." werden g
 
natürlich ... einmal für's Einfügen des Flägs das OR und zum Entfernen das AND NOT ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:52 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz