Derzeit gibt es keine Funktion, die Platzhalter für die Prüfung, ob eine bestimmte Datei vorhanden ist oder nicht unterstützen würde. Das liegt daran, dass die Funktionen FileExists
und FileSearch
intern die Funktion NewFileExists
verwenden, die, wie der Kommentar im Quelltext angibt, keine Platzhalter unterstützt.
Zum Glück gibt es die FindFirst
die Platzhalter unterstützt, so können Sie eine Funktion schreiben, wie für Ihre Aufgabe folgt:
[Code]
function FileExistsWildcard(const FileName: string): Boolean;
var
FindRec: TFindRec;
begin
Result := False;
if FindFirst(FileName, FindRec) then
try
Result := FindRec.Attributes and FILE_ATTRIBUTE_DIRECTORY = 0;
finally
FindClose(FindRec);
end;
end;
Seine Verwendung ist die gleiche wie von FileExists
Funktion, können Sie Platzhalter verwenden für Die Suche ähnelt der MSDN-Referenz für den lpFileName
-Parameter der FindFirstFile
-Funktion. Also, um zu überprüfen, ob es eine Datei mit txt
Erweiterung im C:\Folder
Verzeichnis Sie können auf diese Weise die obige Funktion aufrufen:
if FileExistsWildcard('C:\Folder\*.txt') then
MsgBox('There is a *.txt file in the C:\Folder\', mbInformation, MB_OK);
Natürlich ist die Dateinamen durchsucht werden, um einen Teil des Namens der Datei enthalten, wie zB :
if FileExistsWildcard('C:\Folder\File*.txt') then
MsgBox('There is a File*.txt file in the C:\Folder\', mbInformation, MB_OK);
Solche Muster werden Dateien wie zB übereinstimmen C:\Folder\File12345.txt
.