戻る



カレントディレクトリを取得する方法(API関数 GetCurrentDirectory の使用例)
動作環境 Windows95/98 開発環境 Visual Basic 6.0 (+SP3)
説明 API関数 GetCurrentDirectory を使用し、カレントディレクトリを取得します。
用意するもの:標準フォーム(Form1)、テキストボックス(Text1)、コマンドボタン(Command1)


'変数の明示的な宣言を強制します。

Option Explicit

'API関数 GetCurrentDirectory の使用を宣言します。
Private Declare Function GetCurrentDirectory Lib "kernel32" Alias "GetCurrentDirectoryA" _
(ByVal nBufferLength As Long, _
ByVal lpBuffer As String) As Long

'第1引数:第2引数に格納された文字列の長さ
'第2引数:取得した情報(カレントディレクトリ名)を格納する変数(文字列型)
'戻り値:エラーが発生した場合は"0"
'    :正常に終了した場合は第2引数に格納された文字列の長さ

Private Sub Command1_Click()

'API関数GetCurrentDirectoryの戻り値を格納する変数
Dim ret As Long

'カレントディレクトリ名(第2引数)を格納する変数("* 260"は文字列のサイズです。)
Dim CurrentDir As String * 260

ret = GetCurrentDirectory(Len(CurrentDir), CurrentDir)

'戻り値が"0"だったら(=エラーが発生したら)...
If ret = 0 Then

Text1.Text = "カレントディレクトリを取得できませんでした。"

'戻り値が"0"以外だったら...
Else

'変数CurrentDir内の最初のvbNullCharの位置を求め、Left関数を使用してカレントディレクトリ名を取り出します。
Text1.Text = Left(CurrentDir, InStr(CurrentDir, vbNullChar) - 1)

End If

End Sub