Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Ordnerausleseproblem (https://www.delphipraxis.net/73545-ordnerausleseproblem.html)

zebrafalke 19. Jul 2006 16:15


Ordnerausleseproblem
 
Hallo,

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  SearchRec: TSearchRec;
begin
SelectDirectory('Wählen Sie einen Ordner aus:','', Dir);
Listbox1.Items.Clear;

  FindFirst(ExtractFilePath(Dir) + '*.*', faAnyFile, SearchRec);
  repeat
    ListBox1.items.add(searchrec.Name);
  until FindNext(searchrec) <> 0;
  findclose(searchrec);
end;
damit sollte er eigentlich einen wählbaren Ordner auslesen und die Dateien darin in einer Listbox darstellen.
In der Listbox befinden sich dann merkwürdigerweise aber nicht die Dateien des ausgewählten Ordners sondern die des Ordners, welcher eine Ebene höher als der gewählte ist....Hat irgendjemand ne idee? :gruebel:

Bernhard Geyer 19. Jul 2006 16:17

Re: Ordnerausleseproblem
 
Du hast einen Ordner und schneidest mittels ExtractFilePath den Teil nach dem letzten Backslash ab. Welcher Order wird den wohl durchsucht? :gruebel:

himitsu 19. Jul 2006 16:19

Re: Ordnerausleseproblem
 
'\*.*'

da fehlt noch was ... du hängst ja die maske sonst direkt an den ordnernamen an und damit gehört si zu dem ordner und er zeigt diesen an (und alles was so anfängt, wie er heißt).

[edit]
ach ja, mit ExtractFileDir ginge es och :roll:

[edit2]
ach ja, warum überhaupt das ExtraxtFile..
da sucht sich der User in Verzeichnis aus und die nimmst das Elternverzeichnis zum durchsuchen :shock:

zebrafalke 19. Jul 2006 16:27

Re: Ordnerausleseproblem
 
hmm...wie dumm von mir... :oops:

Und wie krieg ich ihn dann dazu, den Ordner nur anhand des Pfades ohne ExtractFilePath auszulesen? Hab das schon ausprobiert, aber dann zeigt er fehler an und die ganze Prozedur geht dann nicht mehr.... :cry:


Ich glaub ich stell mich dumm an... :angel2:

himitsu 19. Jul 2006 16:33

Re: Ordnerausleseproblem
 
SelectDirectory liefert doch den Pfad ohne TrailingBackslash?

also dann wohl so
Delphi-Quellcode:
FindFirst(Dir + '\*.*', faAnyFile, SearchRec);
oder so
Delphi-Quellcode:
FindFirst(InludeohneTrailingBackslasch(Dir) + '*.*', faAnyFile, SearchRec);



obwohl der ordner hier meist nicht leer ist ('.' und '..' sind ja meist noch da) ... kann 'ne abfrage, ob überhaupt was gefunden wurde nicht schaden :zwinker:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  SearchRec: TSearchRec;
begin
  SelectDirectory('Wählen Sie einen Ordner aus:','', Dir);
  Listbox1.Items.Clear;
  if FindFirst(ExtractFilePath(Dir) + '*.*', faAnyFile, SearchRec) then begin
    repeat
      ListBox1.items.add(searchrec.Name);
    until FindNext(searchrec) <> 0;
    findclose(searchrec);
  end;
end;

zebrafalke 19. Jul 2006 16:40

Re: Ordnerausleseproblem
 
Sowas ahnliches hab ich auch schon probiert, mit deinem code gehts! :thumb:

DANKE!


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