AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Alle Dateien auflisten funktioniert nur manchmal

Alle Dateien auflisten funktioniert nur manchmal

Ein Thema von gee21 · begonnen am 23. Mär 2016 · letzter Beitrag vom 24. Mär 2016
Antwort Antwort
Seite 1 von 2  1 2   
gee21

Registriert seit: 3. Jan 2013
199 Beiträge
 
Delphi 10.4 Sydney
 
#1

Alle Dateien auflisten funktioniert nur manchmal

  Alt 23. Mär 2016, 19:35
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;

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
Angehängte Dateien
Dateityp: zip res_mods.zip (417,7 KB, 4x aufgerufen)
Robert
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.269 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Alle Dateien auflisten funktioniert nur manchmal

  Alt 23. Mär 2016, 19:38
Hallo,
und welche Dateien fehlen bei Dir bei der Auflistung?


Heiko
Heiko
  Mit Zitat antworten Zitat
gee21

Registriert seit: 3. Jan 2013
199 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: Alle Dateien auflisten funktioniert nur manchmal

  Alt 23. Mär 2016, 19:41
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
Robert
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.093 Beiträge
 
Delphi 10 Seattle Enterprise
 
#4

AW: Alle Dateien auflisten funktioniert nur manchmal

  Alt 23. Mär 2016, 19:42
Versuche doch mal das fertige TDirectory.GetFiles(..)
  Mit Zitat antworten Zitat
gee21

Registriert seit: 3. Jan 2013
199 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: Alle Dateien auflisten funktioniert nur manchmal

  Alt 23. Mär 2016, 19:45
OK, besten dank. Schaue mir das gleich an.
Robert
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#6

AW: Alle Dateien auflisten funktioniert nur manchmal

  Alt 23. Mär 2016, 19:47
Es kommt u. a. auf die Attribute der Verzeichnisse an. Sind die komprimiert, versteckt ..., so funktioniert Dein Vergleich nicht mehr.

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

Registriert seit: 3. Jan 2013
199 Beiträge
 
Delphi 10.4 Sydney
 
#7

AW: Alle Dateien auflisten funktioniert nur manchmal

  Alt 23. Mär 2016, 19:52
AHA

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

JAAA so gehts. Besten Dank
Robert
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: Alle Dateien auflisten funktioniert nur manchmal

  Alt 24. Mär 2016, 10:28
Moin Robert,

das hier
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.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Delbor

Registriert seit: 8. Okt 2006
Ort: St.Gallen/Schweiz
1.186 Beiträge
 
Delphi 11 Alexandria
 
#9

AW: Alle Dateien auflisten funktioniert nur manchmal

  Alt 24. Mär 2016, 12:44
Hi gee21

Schau dir auch diese Komponente mal an.

Gruss
Delbor
Roger
Man muss und kann nicht alles wissen - man muss nur wissen, wo es steht.
Frei nach Albert Einstein
http://roase.ch
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.017 Beiträge
 
Delphi 12 Athens
 
#10

AW: Alle Dateien auflisten funktioniert nur manchmal

  Alt 24. Mär 2016, 13:23
Du könntest es mal mit IncludeTrailingBackslash versuchen.
Er sollte es nicht nur versuchen.

Seit vielen Jahren heißt es nun IncludeTrailingPathDelimiter, da z.B. Linux den Backslash nicht mag.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:16 Uhr.
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