Attualmente, non esiste una funzione che avrebbe sostenuto i caratteri jolly per verificare l'esistenza di un certo file o meno. Questo perché entrambe le funzioni FileExists
e FileSearch
utilizzano internamente la funzione NewFileExists
che, come afferma il commento nel codice sorgente, non supporta i caratteri jolly.
Fortunatamente, c'è il FindFirst
che supporta i caratteri jolly, in modo da poter scrivere una funzione come segue per il vostro compito:
[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;
suo utilizzo è uguale a quello di FileExists
funzione, si può solo utilizzare i caratteri jolly per la ricerca come descrive il riferimento MSDN per il parametro lpFileName
della funzione FindFirstFile
. Quindi, per verificare se c'è un file con txt
estensione nella directory C:\Folder
è possibile chiamare la funzione di cui sopra in questo modo:
if FileExistsWildcard('C:\Folder\*.txt') then
MsgBox('There is a *.txt file in the C:\Folder\', mbInformation, MB_OK);
Naturalmente il nome del file da ricercare può contenere un nome parziale del file, come ad esempio :
if FileExistsWildcard('C:\Folder\File*.txt') then
MsgBox('There is a File*.txt file in the C:\Folder\', mbInformation, MB_OK);
Tale modello corrisponderà a file come ad es. C:\Folder\File12345.txt
.