Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   FindFirst/FindNext -> findet Dateien nicht! (https://www.delphipraxis.net/22506-findfirst-findnext-findet-dateien-nicht.html)

F.W. 18. Mai 2004 14:08


FindFirst/FindNext -> findet Dateien nicht!
 
Ich habe folgenden Source:
Delphi-Quellcode:
procedure DateiListe(Pfad, Name: String; SubDirs: Boolean;
  Attr: Integer; Ausgabe: TStrings);
var
F1, F2: TSearchRec;
A: Char;
begin
Pfad := SetPfad(Pfad, True);
if FindFirst(Pfad+Name, Attr, F1) = 0 then begin
    if (F1.Name <> '.') and (F1.Name <> '..') then begin
       Case F1.Attr of
         faDirectory : A := '+';
         faHidden   : A := '#';
         faArchive  : A := '<';
         faReadOnly : A := '-';
         faSysFile  : A := '$';
         faVolumeID : A := '=';
         faAnyFile  : A := '/';
       end;

       if A > '' then
          Ausgabe.Add(A+Pfad+F1.Name);

//       if ((F1.Attr and faDirectory) = faDirectory) and (SubDirs) then
          DateiListe(Pfad+SetPfad(F1.Name, True), Name, SubDirs, Attr, Ausgabe);
    end;
    While FindNext(F1) = 0 do begin
        if (F1.Name <> '.') and (F1.Name <> '..') then begin
           Case F1.Attr of
             faDirectory : A := '+';
             faHidden   : A := '#';
             faArchive  : A := '<';
             faReadOnly : A := '-';
             faSysFile  : A := '$';
             faVolumeID : A := '=';
             faAnyFile  : A := '/';
           end;

           if A > '' then
              Ausgabe.Add(A+Pfad+F1.Name);

//       if ((F1.Attr and faDirectory) = faDirectory) and (SubDirs) then
              DateiListe(Pfad+SetPfad(F1.Name, True), Name, SubDirs, Attr, Ausgabe);
        end;
    end;

end;
end;
Warum werden die Dateien im Ordner Cookies nicht angezeigt? Selbst Versteckte Dateien zeigt er, die meiner Meinung nach einen höheren Sicherheitsstatus haben, als die im Ordner Cookies!

negaH 18. Mai 2004 14:13

Re: FindFirst/FindNext -> findet Dateien nicht!
 
F1.Attr ist Bitcodiert, d.h. es kann auch faDirectory UND faHidden gesetzt sein. Deinen Anfrage mit Case ist demnach falsch.

Gruß Hagen

alcaeus 18. Mai 2004 15:56

Re: FindFirst/FindNext -> findet Dateien nicht!
 
mach die Abfrage immer so
Delphi-Quellcode:
if (F1.attr AND faDirectory) = faDirectory then
//...
Das funktioniert natürlich für alle Attribute

F.W. 18. Mai 2004 16:35

Re: FindFirst/FindNext -> findet Dateien nicht!
 
Das weiß ich inzwischen schon -> http://www.delphipraxis.net/internal...730&highlight=
aber ich habe diese Abfrage mal weggelassen, da hat es mir die Cookies auch nicht aufgelistet!

Luckie 18. Mai 2004 17:44

Re: FindFirst/FindNext -> findet Dateien nicht!
 
Die Cookies wirst du so nicht bekommen. Das ist ein spezieller Ordner in Windows. An dessen Inhalt kommst du mit MSDN-Library durchsuchenFindFirstURLCacheEntry dran.

F.W. 18. Mai 2004 20:49

Re: FindFirst/FindNext -> findet Dateien nicht!
 
Nee, ich meine den Ordner "Cookies" in den Dokumente und Einstellungen! Dort sind doch Dateien drin, die listet mir die Procedure nicht auf!

Das muss doch unter Dach und Fach zu bekommen sein!

Christian Seehase 19. Mai 2004 21:09

Re: FindFirst/FindNext -> findet Dateien nicht!
 
Moin F.W.,

das Problem dürfte sein, dass die Variable A nicht initialisiert wird.
Da es eine lokale Variable ist hat das zur Folge, dass sie einen zufälligen Wert enthält.
Durch die Case Anweisungen wird der Wert auch nicht verändert (siehe Hagens und alcaeus' Postings), so das, vermutlich, A <= ' ' ist und nie eine Zeile zu Ausgabe hinzugefügt wird.

F.W. 21. Mai 2004 14:47

Re: FindFirst/FindNext -> findet Dateien nicht!
 
Das hatte ich schonmal, ist aber inzwischen weg, so geht's ja, aber bei diesem Ordner nicht!

Es kann sein, dass andere Ordner auch nicht, aber der ist mir gerade aufgefallen!

Christian Seehase 21. Mai 2004 20:19

Re: FindFirst/FindNext -> findet Dateien nicht!
 
Moin F.W.,

was übergibst Du denn in Deinem Parameter Attr?

Ich habe die Erfahrung gemacht, dass es sinnvoll ist grundsätzlich faAnyFile zu verwenden, und anschliessend selber zu filtern.

F.W. 21. Mai 2004 20:57

Re: FindFirst/FindNext -> findet Dateien nicht!
 
Da ich sowieso alles auflisten möchte, nehme ich immer faAnyFile!


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:49 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