Hi Jim,
also wenn ich Dich richtig verstanden habe, stehen in der Stringliste sowohl Verzeichnisnamen als auch Dateinamen, die ausgeschlossen werden sollen.
Dann würde ich die Prüfung genau anders herum machen, also bei jeder gefunden Datei den kompletten Dateinamen inkl. Pfad in einer String-Variablen speichern und dann die Stringliste durchgehen und auf Vorkommen in dem Pfad testen. Also ähnlich Deinem Einfall beim Einkaufen, aber leicht abgeändert.
Klingt zugegebenermaßen etwas konfus, daher hier mal etwas Pseudocode:
Delphi-Quellcode:
ADateiname:= APfad + SR.Name; //SR ist ein TSearchRec, APfad ist der aktuelle mit FindFirst durchsuchte Pfad inkl. abschließendem "\"
AImFilter:= False;
FOR i:=0 TO SL.Count-1 DO
begin
IF Pos(SL[i], ADateiname) > 0 THEN
begin
AImFilter:= True;
Break;
end;
end;
IF NOT AImFilter THEN
begin
//Datei verarbeiten
end;
Es werden also alle "ausgefiltert", die einen der ausgeschlossenen Einträge aus der StringList im Dateinamen haben.
Wenn dann AFileName beispielsweise "c:\Verzeichnis1\datei1.txt" ist, könnte in der StringList (SL) sowohl "c:\Verzeichnis1\datei1.txt", als auch "c:\Verzeichnis1\" oder auch nur "Verzeichnis1" stehen, um die Datei auszuschließen.
War es in etwa das was Du gesucht hast?
Viele Grüße
Kai