MoveFileEx ファイルの移動

Cの宣言:

BOOL MoveFileEx(LPCTSTR SrcFile, LPCTSTR DestFile, DWORD MoveFlags);

説明:

ファイルの移動を行う。ただし、この関数に存在しないディレクトリを新規に作成させることはできない。

ファイル名としてワイルドカードを用いることはできない。

システムは、ファイルの移動を、実際にはリネームによって行うので、通常異なるボリュームにファイルを移動することはできない。しかし、MoveFlagsにMOVEFILE_COPY_ALLOWEDを指定することにより、異なるボリューム間のファイル移動に対してシステムがファイルの複製と削除を用いて移動をシミュレートするように指示することができる。

引数の意味は、以下の通り。
SrcFile 移動元ファイル名
DestFile 移動先ファイル名。NULLが指定されたときは、移動元ファイルは削除される。
MoveFlags 移動方法。後述の表を参照。

MoveFlagsに指定できる値は、以下のフラグの論理和である。
MOVEFILE_COPY_ALLOWED 異なるボリューム間での移動を、ファイルの複製と削除を行うことによって可能とする。MOVEFILE_DELAY_UNTIL_REBOOTとともに使用することはできない。
MOVEFILE_DELAY_UNTIL_REBOOT システムの次回起動時に移動を実行する。ただし、NTのみ。95で同様のことを行う場合、WININIT.INIファイルのRenameセクションに“移動先ファイル名=移動元ファイル名”と記述する。移動元ファイル名が“NUL”ならば、削除の動作となる。
MOVEFILE_REPLACE_EXISTING 上書き可能とする。
MOVEFILE_WRITE_THROUGH 移動が完全に終了するまで、MoveFileEx関数は終了しない。ただし、MOVEFILE_DELAY_UNTIL_REBOOTが指定された場合は、無意味なフラグとなる。NTのみ。

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

Cのサンプル:

void DoMoveFile()
{
	MoveFileEx(
		"d:\\doc\\aaa.txt",
		"c:\\bbb.txt",
		MOVEFILE_COPY_ALLOWED);
}
(original text:1998/12/25 更新)

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