Returns a string representing the name of a file, directory, or folder that matches a specified pattern or file attribute, or the volume label of a drive.
The My.Computer.FileSystem Object gives you greater productivity and performance in file I/O operations than the Dir function. See My.Computer.FileSystem.GetDirectoryInfo Method for more information.
Public Overloads Function Dir() As String
' -or-
Public Overloads Function Dir( _
ByVal PathName As String, _
Optional ByVal Attributes As FileAttribute = FileAttribute.Normal _
) As String
Parameters
- PathName
-
Optional. String expression that specifies a file name, directory or folder name, or drive volume label. A zero-length string ("") is returned if PathName is not found.
- Attributes
-
Optional. Enumeration or numeric expression whose value specifies file attributes. If omitted, Dir returns files that match PathName but have no attributes.
The Attributes argument enumeration values are as follows:
| Value | Constant | Description |
|---|---|---|
| Normal | vbnormal | Default. Specifies files with no attributes. |
| ReadOnly | vbReadOnly | Specifies read-only files, in addition to files with no attributes. |
| Hidden | vbHidden | Specifies hidden files, in addition to files with no attributes. |
| System | vbSystem | Specifies system files, in addition to files with no attributes. |
| Volume | vbVolume | Specifies volume label; if any other attribute is specified, vbVolume is ignored. |
| Directory | vbDirectory | Specifies directories or folders, in addition to files with no attributes. |
| Archive | vbArchive | File has changed since last backup. |
| Alias | vbAlias | File has a different name. |
Note |
|---|
| These enumerations are specified by the Visual Basic language and can be used anywhere in your code in place of the actual values. |
The Dir function supports the use of multiple-character (*) and single-character (?) wildcards to specify multiple files.
VbVolume returns the volume label for the drive instead of a specific file name.
You must supply a PathName the first time you call the Dir function. To retrieve the next item, you can make subsequent calls to the Dir function with no parameters.
Security Note |
|---|
| To run correctly, the Dir function requires the Read and PathDiscovery flags of FileIOPermission to be granted to the executing code. For more information, see FileIOPermission, SecurityException, and Code Access Permissions. |
This example uses the Dir function to check if certain files and directories exist.
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
This function is not supported.
Namespace: Microsoft.VisualBasic
Module: FileSystem
Assembly: Visual Basic Runtime Library (in Microsoft.VisualBasic.dll)
Reference
ChDir FunctionCurDir Function
FileAttribute Enumeration
Note
Security Note