Autor Beitrag
Luncustaf
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 324

Win 2k
D7 Ent.
BeitragVerfasst: Sa 12.04.03 11:14 
hi,

ich hab hier nene code für das rekursive durchsuchen von ordnern. das klappt aber nur wenn er allgemein nahc allen dateien sucht. ich will aber nur nach zb *.mp3 suchen das er mir alle mp3's auflistet die sich in einem unter ordner befinden.

ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
var Rec:TSearchRec;
begin
   //Die beiden ersten gefundenen Einträge ignorieren
   FindFirst(Dir+'\*.*', faAnyFile,Rec);
   FindNext(Rec); 

   if FindNext(Rec)=0 then 
   begin 
     repeat
       frmzentral.mp3.Add(Dir+'\'+Rec.Name);
       //wenn der Eintrag ein Verzeichnis ist, ebenfalls durchgehen 
       if (Rec.Attr and faDirectory = faDirectory) then
         FindFiles(Dir+'\'+Rec.Name);
     until FindNext(Rec)<>0; 
   end; 
   Findclose(Rec);


ich hab gedacht ich kann das hier ändern

ausblenden Quelltext
1:
FindFirst(Dir+'\*.*', faAnyFile,Rec);					


aber das klappt nicht :(

kann mit vllt jemand helfen


gr€€tz
delphiDeveloper
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 48



BeitragVerfasst: Sa 12.04.03 12:53 
Titel: Folgendes Programmfragment sucht rekursiv nach Files
hier werden alle pas Dateien im Verzeichnis (+Unterverzeichnisse) "C:\myDelphiProg" angezeigt.

ausblenden volle Höhe Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
procedure GetAllFiles(mask: string);
var Search: TSearchrec;
  verz: string;
  such: string;

begin
  such := ExtractFileName(mask);
  verz := ExtractFilepath(mask);
  if verz[length(verz)] <> '\' then verz := verz + '\';
 { alle Dateien suchen }
  if FindFirst(mask, $23, Search) = 0 then
  repeat
      Form1.listbox1.items.add(verz + Search.Name);

  until FindNext(Search) <> 0;
  { Unterverzeichnisse durchsuchen }
  if FindFirst(verz + '*.*', fadirectory, Search) = 0 then
   begin;
    repeat
      if ((search.attr and fadirectory) = fadirectory) and (search.name[1] <> '.') then
        GetAllFiles(verz + Search.Name + '\' + such);
    until FindNext(Search) <> 0;

  end;
  Findclose(Search);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
   GetAllFiles('C:\myDelphiProg\*.pas');
end;
Luncustaf Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 324

Win 2k
D7 Ent.
BeitragVerfasst: Sa 12.04.03 14:15 
cool danke vielmals klappt einwandfrei :D

gr€€tz
wulfskin
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1349
Erhaltene Danke: 1

Win XP
D5 Pers (SSL), D2005 Pro, C, C#
BeitragVerfasst: So 13.04.03 12:19 
Hallo Luncustaf!

Die Idee diese eine Zeile zu ändern ist im Prinzip nicht schlecht. Das Problem ist nur, dass dadurch nur noch Dateien mit dieser Endung angezeigt werden, aber leider keine Verzeichnisse mehr.
Das heisst, du kannst nur in einer Ebene Dateien auflisten lassen. Ansonsten musst du es so machen, wie delphiDeveloper es dir geschrieben hat!

Gruß wulfskin!

_________________
Manche antworten um ihren Beitragszähler zu erhöhen, andere um zu Helfen.