IBM Lotus Symphony


Dir 関数 [実行時]

指定した検索パスに一致する 1 つのファイル、1 つのディレクトリ、またはドライブ上かディレクトリ内にあるすべてのファイルとディレクトリの名前を返します。

構文:

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

戻り値:

String

パラメータ:

Text: 検索パス、ディレクトリ、またはファイルを指定する任意の文字列式。この引数は、Dir 関数を最初に呼び出すときにのみ指定できます。必要であれば、パスを URL 表記で入力することもできます。

Attrib: ビット単位のファイル属性を指定する任意の整数表式。Dir 関数は、指定された属性に一致するファイルまたはディレクトリだけを返します。属性値を加算することにより、複数の属性を組み合わせることができます。

0 : 通常のファイル。

16 : ディレクトリ名のみを返します。

この属性を使用して、ファイルまたはディレクトリが存在するかどうかを調べたり、特定のディレクトリ内にあるすべてのファイルとフォルダを判別したりできます。

ファイルが存在するかどうかを調べるには、ファイルの完全なパスと名前を入力します。そのファイル名またはディレクトリ名が存在しない場合、Dir 関数は長さゼロの文字列 ("") を返します。

特定のディレクトリにある既存のすべてのファイルのリストを生成するには、以下のようにします。まず、Dir を最初に呼び出すときは、ファイルの完全な検索パスを指定します。例えば、D:¥Files¥*.sxw などとします。パスが正しく、検索で 1 つ以上のファイルが検出された場合、Dir 関数は検索パスに最初に一致したファイルの名前を返します。パスに一致するその他のファイル名を返させるには、Dir を引数なしで再度呼び出します。

ディレクトリのみが戻るようにするには、属性パラメータを使用します。ボリューム (ハードディスクのパーティションなど) の名前を判別する場合も、同じようにします。

エラーコード

5 無効なプロシージャ呼び出しです

53 ファイルが見つかりません

例:

Sub ExampleDir

REM ファイルとディレクトリをすべて表示

Dim sPath As String

Dim sDir as String, sValue as String

sDir="Directories:"

sPath = CurDir

sValue = Dir$(sPath + getPathSeparator + "*",16)

Do

If sValue <> "." and sValue <> ".." 条件を満たすとき

if (GetAttr( sPath + getPathSeparator + sValue) AND 16) >0 then

REM ディレクトリを取得

sDir = sDir & chr(13) & sValue

End If

End If

sValue = Dir$

Loop Until sValue = ""

MsgBox sDir,0,sPath

End sub


製品フィードバック | その他の資料 | 商標