Hi @ll
Ich habe da ein kleines Problem.
Ich möchte gerne Dateien rekursiv suchen und den Pfad in ein " Dyn Array of Record" schreiben.
Ich habe mir gedacht ich lagere alle Hilfs-Funktionen in eine eigene
Unit aus, nur habe ich da
wohl etwas falsch gemacht.
Sobald sich im Ordner ausser Unterordner auch Files befinden werden nur noch die Files im Parentordner ins Array geschrieben.
Kann sich mal jemand den Code anschauen?
Code-Hilfs
Unit
Delphi-Quellcode:
procedure GetAllFiles(var FRec: TMP3Set; dir: string; datei: string; ext: string);
var sr: TSearchRec;
r: integer;
index: integer;
begin
index:= Length(FRec);
r:= FindFirst(dir+'\*.*', faAnyFile, sr);
while r = 0 do
begin
if copy(sr.Name,1,1)<> '.' then
begin
if(sr.attr <> 0)and(faDirectory <> 0) then
GetAllFiles(Frec,dir+'\'+ sr.Name, datei,ext);
end;
if (copy(sr.Name,pos('.',LowerCase(sr.Name)),4) = ext) then
begin
SetLength(Frec,index +1);
Frec[index].Pfad:= dir+'\'+sr.Name;
inc(index);
end;
Application.ProcessMessages;
r:= FindNext(sr);
end;
end;
Den Record so wie das Array habe ich in Unit1 deklariert, der Aufruf findet in Unit2 statt.
Record/ Array deklaration
Delphi-Quellcode:
type
TID3Tag = packed record
Pfad: string[255];
ID: string[3];
Titel: string[30];
Artist: string[30];
Album: string[30];
Year: string[4];
Comment: string[30];
Genre: Byte;
end;
type
TMP3Set = Array of TID3Tag;
Hier der Aufruf der Procedure GetAllFiles aus Unit2
GetAllFiles(MP3,dir,'*','.mp3');
grz zer00