检查文件或目录是否存在并返回它的属性.
AttributeString := FileExist(FilePattern)
类型: 字符串
单个文件或文件夹的名称, 或通配符模式, 如 "C:\Temp\*.tmp"
. 如果未指定绝对路径, 则假定 FilePattern 位于 A_WorkingDir 中.
支持星号(*
) 和问号(?
) 作为通配符. *
匹配零个或多个字符, 而 ?
匹配任何单个字符. 使用示例:
*.*
或 *
匹配所有文件.*.htm
匹配扩展名为 .htm, .html 等的文件.*.
匹配没有扩展名的文件.log?.txt
匹配如 log1.txt 但不匹配 log10.txt.*report*
匹配任何包含单词 "report" 的文件名.类型: 字符串
函数返回第一个匹配文件或文件夹的属性. 这个字符串是 RASHNDOCTL
的子集, 其中每个字母的意思如下:
如果文件没有任何属性(罕见), 则返回 "X". 如果文件不存在则返回空字符串.
注意, 在包含文件和子文件夹的 MyFolder 中像这样的通配符检查 InStr(FileExist("MyFolder\*"), "D")
只告诉您 第一个 匹配的文件是否是一个文件夹, 而不是一个文件夹是否存在. 要检查后者, 请使用 DirExist, 例如: DirExist("MyFolder\*")
.
与 FileGetAttrib 不同, FileExist 支持通配符模式, 如果存在匹配的文件, 它总是返回一个非空值.
由于空字符串被视为 "false", 所以函数的返回值总是可以用作准布尔值. 例如, 如果文件存在, 语句 if FileExist("C:\My File.txt")
为真(true), 否则返回假(false).
由于 FilePattern 可能包含通配符, 因此 FileExist 可能不适合验证将与其他函数或程序一起使用的文件路径. 例如, FileExist("*.txt")
可能会返回属性即使 "*.txt" 不是有效的文件名. 在这种情况下, FileGetAttrib 是首选.
DirExist, FileGetAttrib, File-loops
if not FileExist("C:\Temp\FlagFile.txt") MsgBox "The target file does not exist."