SetCurrentDirectory カレントディレクトリの設定

Cの宣言:

BOOL SetCurrentDirectory(LPCTSTR CurDir);

VBの宣言:

Declare Function SetCurrentDirectory Lib "kernel32" Alias "SetCurrentDirectoryA" ( _
	ByVal CurrentDir As String) As Long

説明:

カレントディレクトリを変更する。

カレントディレクトリの情報をディスクごとに記憶しているDOSのchdirコマンドとは異なり、プロセスのカレントディレクトリの概念はプロセスにつき1つのみ存在する。CurDirに“D:”など、ディスクのみを指定する記述をした場合、SetCurrentDirectoryを呼び出した時点でのプロセスのカレントディレクトリがそのディスク上に存在するならば、カレントディレクトリは変更されない。そうでなく、SetCurrentDirectoryを呼び出した時点でのプロセスのカレントディレクトリがそのディスク上に存在しないならば、実行後のカレントディレクトリは、指定したディスクのルートパスとなる。

VBでは、VBのChDriveステートメント及びChDirステートメントの組み合わせによって同様の動作が可能である。

引数の意味は、以下の通り。
CurDir (IN) カレントディレクトリにするディレクトリ名

主なエラーは以下の通り。
ERROR_FILE_NOT_FOUND 指定したディレクトリは存在しない
ERROR_DIRECTORY 指定されたパスはディレクトリでない
ERROR_BAD_NETPATH 指定されたネットワークディレクトリが見つからない
ERROR_BAD_PATHNAME 不正な文字などが使用されている
ERROR_NOT_READY ドライブの準備ができていない

戻り値は、関数の実行に成功したか否かを表す真偽値である。

Cのサンプル:

void DoSetCurDir()
{
	SetCurrentDirectory("c:\\windows");
}

VBのサンプル:

' カレントディレクトリの変更
Private Sub SetCurDir()

	SetCurrentDirectory ("c:\temp")

End Sub

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

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