Dir Function 

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.

Settings

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.

Remarks

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 noteSecurity 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.

Example

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

Smart Device Developer Notes

This function is not supported.

Requirements

Namespace: Microsoft.VisualBasic

Module: FileSystem

Assembly: Visual Basic Runtime Library (in Microsoft.VisualBasic.dll)

See Also

Reference

ChDir Function
CurDir Function
FileAttribute Enumeration