模块
目录
索引 🔎︎

# Dir 函数

返回与指定的搜索路径相匹配的驱动器或目录中的某个文件、某个目录或所有文件和目录的名称。

## 语法:

    Dir [(Text As String) [, Attrib As Integer]]

## 返回值:

字符串

## 参数:

「Text」: 用于指定搜索路径、目录或文件的任意字符串表达式。只能在第一次调用 Dir 函数时指定此自变量。如果需要，也可以用 URL 表示法输入路径。

「Attrib」: 用于指定按位文件属性的任意整数表达式。Dir 函数只返回与指定属性相匹配的文件或目录。通过将属性值相加，可以将多个属性组合起来:

0: 普通文件。

16: 仅返回目录名称。

使用此属性来检查文件或目录是否存在，或者确定指定目录下的所有文件或文件夹。

要检查文件是否存在，请输入完整的文件路径和名称。如果文件或目录的名称不存在，Dir 函数将返回一个零长度字符串 ("")。

要生成特定目录下所有现有文件的列表，请执行以下操作: 第一次调用 Dir 函数时，指定完整的文件搜索目录，如「D:\Files\*.ods」。如果指定的路径正确，并且至少搜索到一个文件，Dir 函数将返回与搜索路径相匹配的第一个文件的名称。要返回与路径相匹配的其他文件的名称，请再次调用 Dir 函数，但不用带自变量。

要仅返回目录，请使用该属性参数。这也同样适用于确定卷 (例如硬盘分区) 的名称。

## 错误代码:

5 无效的过程调用

53 未找到文件

## 示例:

    Sub ExampleDir
    ' 显示所有文件和目录
    Dim sPath As String
    Dim sDir As String, sValue As String
        sDir="目录列表:"
        sPath = CurDir
        sValue = Dir$(sPath + getPathSeparator + "*",16)
        Do
            If sValue <> "." And sValue <> ".." Then
                If (GetAttr( sPath + getPathSeparator + sValue) And 16) >0 Then
                    ' 获取目录
                    sDir = sDir & chr(13) & sValue
                End If
            End If
            sValue = Dir$
        Loop Until sValue = ""
        MsgBox sDir,0,sPath
    End Sub