Dir 函数

返回一个 String,它表示与指定模式或文件属性或驱动器的卷标匹配的文件、目录或文件夹的名称。

语法

Dir [ (pathname, [ attributes ] ) ]

Dir 函数语法具有以下部分:

Part 说明
pathname 可选。 指定文件名的字符串表达式,可包括目录或文件夹和驱动器。 如果未找到 pathname,则返回零长度字符串 ("")。
attributes 可选。 其和指定文件属性的常量数值表达式。 如果省略它,则返回与 pathname 匹配但没有属性的文件。

设置

属性参数设置包括:

常量 说明
vbNormal 0 (默认)指定没有属性的文件。
vbReadOnly 1 指定只读文件以及不带属性的文件。
vbHidden 2 指定隐藏文件以及不带属性的文件。
vbSystem 4 指定系统文件以及不带属性的文件。 在 Macintosh 上不可用。
vbVolume 8 指定卷标;如果指定任何其他属性,则忽略 vbVolume。 在 Macintosh 上不可用。
vbDirectory 16 指定目录或文件夹以及不带属性的文件。
vbAlias 64 指定文件名为别名。 仅在 Macintosh 上可用。

注意

这些常量由 Visual Basic for Applications 指定并可在代码中的任何位置使用来代替实际值。

注解

在 Microsoft Windows 和 macOS 中, Dir 支持使用多字符 (*) 和单字符 () 通配符来指定多个文件。

因为 Macintosh 不支持通配符,请使用文件类型来标识文件组。 使用 MacID 函数指定文件类型而不是使用文件名。 例如,以下语句返回当前文件夹中的第一个 TEXT 文件的名称:

Dir("SomePath", MacID("TEXT"))

若要循环访问文件夹中的所有文件,请指定一个空字符串:

Dir()

如果在 Microsoft Windows 中将 MacID 函数与 Dir 一起使用,将发生错误。

任何大于 256 的 attribute 值都将被视为 MacID 值。

必须在首次调用 Dir 函数时指定 pathname,否则将发生错误。 如果还指定文件属性,则必须包括 pathname

Dir 返回与 pathname 匹配的第一个文件名。 若要获取与 pathname 匹配的任何其他文件名,请重新调用 Dir 而不使用参数。 当不再有匹配的文件名时,Dir 将返回零长度字符串 ("")。 在返回零长度字符串后,必须在后续调用中指定 pathname,否则将发生错误。

可以更改为新的 pathname,而无需检索与当前 pathname 匹配的所有文件名。 但是,不能以递归方式调用 Dir 函数。 调用带 vbDirectory 属性的 Dir 不会连续返回子目录。

提示

由于在 Windows 上按不区分大小写的顺序检索文件名,而在 macOS 上按区分大小写的顺序检索文件名,因此可能需要将返回的文件名存储在数组中,然后对数组进行排序。

另请参阅

支持和反馈

有关于 Office VBA 或本文档的疑问或反馈? 请参阅 Office VBA 支持和反馈,获取有关如何接收支持和提供反馈的指南。