Inno setup 如何使用通配符测试Inno安装程序中是否存在文件

Inno setup 如何使用通配符测试Inno安装程序中是否存在文件,inno-setup,Inno Setup,是否可以使用FileExists或FileSearch(或任何其他Pascal函数)来确定给定文件夹中是否存在文件模式 例如: 如果(FileExists('c:\folder\*.txt')=True),则 目前,没有支持通配符的函数来检查某个文件是否存在。这是因为and函数在内部都使用函数,正如源代码中的注释所述,该函数不支持通配符 幸运的是,存在支持通配符的函数,因此您可以为任务编写如下函数: [代码] 函数FileExistsWildcard(const FileName:string)

是否可以使用
FileExists
FileSearch
(或任何其他Pascal函数)来确定给定文件夹中是否存在文件模式

例如:

如果(FileExists('c:\folder\*.txt')=True),则

目前,没有支持通配符的函数来检查某个文件是否存在。这是因为and函数在内部都使用函数,正如源代码中的注释所述,该函数不支持通配符

幸运的是,存在支持通配符的函数,因此您可以为任务编写如下函数:

[代码]
函数FileExistsWildcard(const FileName:string):布尔值;
变量
FindRec:TFindRec;
开始
结果:=假;
如果FindFirst(文件名,FindRec),则
尝试
结果:=FindRec.Attributes和文件\属性\目录=0;
最后
FindClose(FindRec);
结束;
结束;
它的用法与函数的用法相同,只是可以使用通配符进行搜索,就像描述函数的
lpFileName
参数的MSDN引用一样。因此,要检查
C:\Folder
目录中是否有扩展名为
txt
的文件,可以通过以下方式调用上述函数:

如果文件存在swildcard('C:\Folder\*.txt'),则
MsgBox('在C:\Folder\'中有一个*.txt文件,mbInformation,MB_OK);
当然,要搜索的文件名可能包含文件的部分名称,例如:

如果文件存在swildcard('C:\Folder\File*.txt'),则
MsgBox('在C:\Folder\'中有一个文件*.txt文件,mbInformation,MB_OK);
这种模式将匹配文件,例如
C:\Folder\File12345.txt