2014-04-17 4 views

Antwort

4

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.

Verwandte Themen