Dir 関数
更新 : 2007 年 11 月
指定したパターン、ファイル属性、またはドライブのボリューム ラベルに一致する、ファイル、ディレクトリ、フォルダの名前を表す文字列を返します。
My.Computer.FileSystem オブジェクト を使用すると、Dir 関数を使用するよりもファイル I/O 処理の生産性とパフォーマンスが格段に向上します。詳細については、「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 が見つからない場合は、長さ 0 の文字列 ("") が返されます。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 関数を正しく実行するには、FileIOPermission の Read フラグと PathDiscovery フラグに、コードの実行を許可するよう設定されていることが必要です。詳細については、「FileIOPermission」、「SecurityException」、および「コード アクセス許可」を参照してください。 |
使用例
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)