Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Alle Dateien auflisten funktioniert nur manchmal (https://www.delphipraxis.net/188642-alle-dateien-auflisten-funktioniert-nur-manchmal.html)

gee21 23. Mär 2016 18:35

Alle Dateien auflisten funktioniert nur manchmal
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo.

Ich habe ein Problem. Ich versuche alle Dateien eines Verzeichnisses aufzulisten (inkl Unterverzeichnisse)

Eigentlich klappt es ganz gut. Aber bei gewissen Verzeichnissen, wird nur ein Bruchteil aller Dateien aufgelistet.

Weis jemand von euch warum dies manchmal klappt und manchmal nicht?


Delphi-Quellcode:
   
procedure DateienAuflisten(Pfad: string; DateiListe: TStrings; Rekursiv: Boolean = true; Suchmaske: string = '*');
var
  SR1, SR2: TSearchRec;
begin
  if Pfad[Length(Pfad)] <> '\'
  then Pfad := Pfad + '\';
  if FindFirst(Pfad + Suchmaske, faAnyFile, SR1) = 0
  then begin
    repeat
      if (SR1.Attr <> faDirectory)
      then DateiListe.Add(Pfad+SR1.Name);
    until FindNext(SR1) <> 0;
    FindClose(SR1);
  end;
  if Rekursiv then begin
    if FindFirst(Pfad+'*', faAnyFile, SR2) = 0
    then begin
      repeat
        if (SR2.Attr = faDirectory) and (SR2.Name <> '.') and (SR2.Name <> '..')
        then DateienAuflisten(Pfad+SR2.Name, DateiListe, true);
      until FindNext(SR2) <> 0;
      FindClose(SR2);
    end;
  end;
end;

Delphi-Quellcode:
DateienAuflisten(ExtractFilePath(Application.Exename)+'AA\'+inttostr(combobox2.ItemIndex)+'\res_mods',memo1.lines,true,'*.*');


Liegt es evt an den Dateien selbst? (Beispiel Dateien im Anhang)

Besten Dank schon jetzt

hoika 23. Mär 2016 18:38

AW: Alle Dateien auflisten funktioniert nur manchmal
 
Hallo,
und welche Dateien fehlen bei Dir bei der Auflistung?


Heiko

gee21 23. Mär 2016 18:41

AW: Alle Dateien auflisten funktioniert nur manchmal
 
Hallo :-)


Aufgelistet wird nur dieser Inhalt:

res_mods\0.9.14\scripts\client\CameraNode.pyc
res_mods\0.9.14\scripts\client\mods\ZJ_Mods
res_mods\0.9.14\scripts\client\mods\__init__.pyc
res_mods\0.9.14\scripts\client\mods\ZJ_AimBotShayt an.pyc


Es fehlen alle Dateien in den Unterordnern:
res_mods\0.9.14\scripts\client\mods\ZJ_Mods\object s
res_mods\0.9.14\scripts\client\mods\ZJ_Mods\xml

Der schöne Günther 23. Mär 2016 18:42

AW: Alle Dateien auflisten funktioniert nur manchmal
 
Versuche doch mal das fertige TDirectory.GetFiles(..)

gee21 23. Mär 2016 18:45

AW: Alle Dateien auflisten funktioniert nur manchmal
 
OK, besten dank. Schaue mir das gleich an.

nahpets 23. Mär 2016 18:47

AW: Alle Dateien auflisten funktioniert nur manchmal
 
Es kommt u. a. auf die Attribute der Verzeichnisse an. Sind die komprimiert, versteckt ..., so funktioniert Dein Vergleich nicht mehr.

Versuch es mal mit:
Delphi-Quellcode:
if ((sr2.Attr and faDirectory) = faDirectory) and (SR2.Name <> '.') and (SR2.Name <> '..')

gee21 23. Mär 2016 18:52

AW: Alle Dateien auflisten funktioniert nur manchmal
 
AHA :-)

Zitat:

Versuch es mal mit: if ((sr2.Attr and faDirectory) = faDirectory) and (SR2.Name <> '.') and (SR2.Name <> '..')

JAAA so gehts. Besten Dank :thumb::thumb::thumb:

Christian Seehase 24. Mär 2016 09:28

AW: Alle Dateien auflisten funktioniert nur manchmal
 
Moin Robert,

das hier
Delphi-Quellcode:
if Pfad[Length(Pfad)] <> '\'
ist nicht ganz ungefährlich.
Wenn ein Leerstring übergeben wird, gibt es eine Exception.
Du könntest es mal mit IncludeTrailingBackslash versuchen.

Delbor 24. Mär 2016 11:44

AW: Alle Dateien auflisten funktioniert nur manchmal
 
Hi gee21

Schau dir auch diese Komponente mal an.

Gruss
Delbor

himitsu 24. Mär 2016 12:23

AW: Alle Dateien auflisten funktioniert nur manchmal
 
Zitat:

Zitat von Christian Seehase (Beitrag 1333729)
Du könntest es mal mit IncludeTrailingBackslash versuchen.

Er sollte es nicht nur versuchen. :stupid:

Seit vielen Jahren heißt es nun IncludeTrailingPathDelimiter, da z.B. Linux den Backslash nicht mag.


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:46 Uhr.
Seite 1 von 2  1 2      

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