# DirExist

检查文件夹是否存在并返回其属性.

    AttributeString := DirExist(FilePattern)

## 参数

FilePattern

  类型: 字符串

  要检查的路径, 文件夹名称或文件模式. 如果未指定绝对路径, 则假定 FilePattern 在 A_WorkingDir 中.

## 返回值

类型: 字符串

函数返回第一个符合条件的文件夹的属性. 这个字符串是 `ASHDOC` 的一个子集, 其中每个字母的意思如下:

- A = ARCHIVE(存档)
- S = SYSTEM(系统)
- H = HIDDEN(隐藏)
- D = DIRECTORY(目录)
- O = OFFLINE(离线)
- C = COMPRESSED(压缩)

因为这个函数只检查文件夹是否存在, 所以 "D" 总是出现在返回值中. 如果没有找到文件夹, 则返回一个空字符串.

## 备注

注意, 诸如 `DirExist("FolderWithFilesAndSubfolders\*")` 之类的搜索只告诉您文件夹是否存在. 如果您想检查文件 和 文件夹是否存在, 请使用 FileExist.

与 FileGetAttrib 不同, DirExist 支持通配符模式, 如果存在匹配的文件夹, 它总是返回一个非空值.

由于空字符串被视为 "false", 所以函数的返回值总是可以用作准布尔值. 例如, 如果文件夹存在, 语句 `if DirExist("C:\MyFolder")` 为 true(真), 反之为 false(假).

由于 FilePattern 可能包含通配符, 因此 DirExist 可能不适合验证要与其他函数或程序一起使用的文件夹路径. 例如, `DirExist("Program*")` 可能会返回属性, 尽管 "Program*" 不是一个有效的文件夹名称. 在这种情况下, 应当先考虑使用 FileGetAttrib.

## 相关

FileExist, FileGetAttrib, File-loops

## 示例

如果文件夹确实存在, 会显示一个消息框.

    if DirExist("C:\Windows")
        MsgBox "The target folder does exist."

如果至少有一个程序文件夹存在, 则显示一个消息框.

    if DirExist("C:\Program*")
        MsgBox "At least one program folder exists."

如果文件夹 不存在, 则显示一个消息框.

    if not DirExist("C:\Temp")
        MsgBox "The target folder does not exist."

展示如何检查文件夹的指定属性.

    if InStr(DirExist("C:\System Volume Information"), "H")
        MsgBox "The folder is hidden."

dftg