GetCurrentDirectory カレントディレクトリの取得

Cの宣言:

DWORD GetCurrentDirectory(DWORD CurrentDirSize, LPTSTR CurrrentDir);

VBの宣言:

Declare Function GetCurrentDirectory Lib "kernel32" Alias "GetCurrentDirectoryA" ( _
	ByVal CurrentDirSize As Long, _
	ByVal CurrentDir As String) As Long

説明:

呼び出し元プロセスのカレントディレクトリを取得する。返されるディレクトリ名は長い形式のディレクトリ名である。

VBならば、CurDir関数でカレントディレクトリを取得可能。

引数の意味は、以下の通り。
CurrentDirSize(IN) カレントディレクトリ名を格納するバッファのサイズ
CurrrentDir(OUT) カレントディレクトリ名を格納するバッファ

戻り値は、バッファに書き込まれたカレントディレクトリ名の文字数である。CurrentDirSizeで与えられたバッファのサイズが小さすぎるときは、必要なバッファの文字数を返す。 関数の実行に失敗したならば、0が返される。

Cのサンプル:

void DispCurDir()
{
	char buf[MAX_PATH];

	GetCurrentDirectory(MAX_PATH, buf);
	printf("%s\n", buf);
}

VBのサンプル:

' カレントディレクトリの表示
Private Sub DispCurDir()
	Dim CurrentDir As String * MAX_PATH

	'カレントディレクトリの取得
	GetCurrentDirectory MAX_PATH, CurrentDir

	'カレントディレクトリの表示
	MsgBox Left(CurrentDir, InStr(CurrentDir, vbNullChar) - 1)
End Sub

(original text:1998/12/25 更新)

本ドキュメントの内容は保証しません。本ドキュメントによって生じた結果について、一切の責任を負いません。