problem gelöst *G*
ich mache das jetzt so:
Delphi-Quellcode:
procedure GetAllFilesM(Path, Mask: String; List: TStrings;
SubFolder: Boolean);
var
Attrib, k: Integer;
Search: TSearchRec;
begin
Attrib := faArchive + faReadOnly + faHidden;
if Path[Length(Path)] <> '\' then Path := Path + '\';
with TStringList.Create do
try
QuoteChar:='.';
// CommaText := Mask;
DelimitedText:= Mask;
for k := 0 to Count - 1 do
if FindFirst(Path + Strings[k], Attrib, Search) = 0 then
repeat
List.Add(AnsiUpperCase(Path + Search.Name));
until FindNext(Search) <> 0;
FindClose(Search);
finally Free end;
if SubFolder then
begin
if FindFirst(Path + '*.*', faDirectory, Search) = 0 then
begin
repeat
if ((Search.Attr and faDirectory) = faDirectory) and
(Search.Name[1] <> '.') then
GetAllFilesM(Path + Search.Name, Mask, List, SubFolder);
until FindNext(Search) <> 0;
FindClose(Search);
end;
end;
end; {Popov}
function GetFilesInDirectory(ADirectory: string; AMask: String; ARekursiv: Boolean):Boolean;
var
extList:TStringList;
begin
extList:=TStringList.Create;
AMask:=StringReplace(aMask,'.',',*.',[rfReplaceAll ]);
Delete(amask,1,1);
// Amask
GetAllFilesM(ADirectory,amask,extlist,ARekursiv);
// ShowMessage(extlist.text);
if extlist.count > 0 then
result:=true
else
result:=False;
end;
die erste procedure stamt vom Delphiforum. Wist ihr vileicht noch wie ich diese procedure optimieren könnte ?
ich glaube mein fehler war: das sich die procedure immer selbst aufgerufen hat. ich glaube folgendes:
er endeckt ein verzeichnis ruft sich slebst auf und kerht zum ersten aufruf zurück und gibt dort natürlich false zurück beim zweiten aufruf wird nämlich true zurückgeben aber das wird aus irgenein grund nicht beachtet. habe ja test gemacht. Naja.... vielen dank für die vorschläge.
Eine frage hätte ich noch zur der TFileListbox variante: wie bekommt man die rekusiv ?
weil das ist ja die einfachste such funktion von allen.
ich müste ja schauen ob es sich um ein verzeichnis oder eine datei handelt. bei einem verzeichnis muss sie sich selsbt aufrufen(auch wenn ich damit in den letzten tagen schlächte erfahrung gemacht habe)