Dir 函数

更新:2007 年 11 月

返回表示匹配指定模式或文件属性的文件名、目录名或文件夹名的字符串或返回驱动器卷标的字符串。

在文件 I/O 操作中,My.Computer.FileSystem 对象具有比 Dir 函数更高的效率和更好的性能。有关更多信息,请参见 My.Computer.FileSystem.GetDirectoryInfo 方法

Public Overloads Function Dir() As String
' -or-
Public Overloads Function Dir( _
       ByVal PathName As String, _ 
       Optional ByVal Attributes As FileAttribute = FileAttribute.Normal _
) As String

参数

  • PathName
    可选。String 表达式,指定文件名、目录或文件夹名或驱动器卷标。如果没有找到 PathName,则返回零长度字符串 ("")。

  • Attributes
    可选项。其值指定文件属性的枚举或数值表达式。如果省略,则 Dir 返回匹配 PathName 但没有属性的文件。

设置

Attributes 参数枚举值如下:

常数

说明

Normal

vbnormal

默认值。指定无属性文件。

ReadOnly

vbReadOnly

指定只读文件以及无属性文件。

Hidden

vbHidden

指定隐藏文件以及无属性文件。

System

vbSystem

指定系统文件以及无属性文件。

Volume

vbVolume

指定卷标;如果指定了任何其他属性,则忽略 vbVolume。

Directory

vbDirectory

指定目录或文件夹以及无属性文件。

Archive

vbArchive

自从上次备份后文件已更改。

Alias

vbAlias

文件具有不同的名称。

说明:

这些枚举由 Visual Basic 语言指定并且可以在代码中的任何位置使用以替换实际值。

备注

Dir 函数支持多字符 (*) 和单字符 (?) 通配符的使用以指定多个文件。

VbVolume 返回驱动器的卷标而不是特定文件名。

第一次调用 Dir 函数时必须提供 PathName。若要检索下一项,可以随后调用无参数的 Dir 函数。

安全说明:

若要正确运行,Dir 函数需要向执行代码授予 FileIOPermissionReadPathDiscovery 标志。有关更多信息,请参见 FileIOPermissionSecurityException代码访问权限

示例

此示例使用 Dir 函数检查某些文件和目录是否存在。

Dim MyFile, MyPath, MyName As String
' Returns "WIN.INI" if it exists.
MyFile = Dir("C:\WINDOWS\WIN.INI")   

' Returns filename with specified extension. If more than one *.INI
' file exists, the first file found is returned.
MyFile = Dir("C:\WINDOWS\*.INI")

' Call Dir again without arguments to return the next *.INI file in the
' same directory.
MyFile = Dir()

' Return first *.TXT file, including files with a set hidden attribute.
MyFile = Dir("*.TXT", vbHidden)

' Display the names in C:\ that represent directories.
MyPath = "c:\"   ' Set the path.
MyName = Dir(MyPath, vbDirectory)   ' Retrieve the first entry.
Do While MyName <> ""   ' Start the loop.
      ' Use bitwise comparison to make sure MyName is a directory.
      If (GetAttr(MyPath & MyName) And vbDirectory) = vbDirectory Then
         ' Display entry only if it's a directory.
         MsgBox(MyName)
      End If   
   MyName = Dir()   ' Get next entry.
Loop

智能设备开发人员说明

不支持此函数。

要求

命名空间:Microsoft.VisualBasic

**模块:**FileSystem

**程序集:**Visual Basic 运行库(在 Microsoft.VisualBasic.dll 中)

请参见

参考

ChDir 函数

CurDir 函数

FileAttribute 枚举