パラメータ
lpExistingFileName
ローカルコンピュータ内の既存のファイル名またはディレクトリ名を保持している、NULL
で終わる文字列へのポインタを指定する。
dwflags パラメータで MOVEFILE_DELAY_UNTIL_REBOOT
を指定した場合、lpExistingFileName パラメータでは、読み取り専用の
属性が割り当てられているファイルを指定できない。
Windows NT/2000:この関数の ANSI 版では、名前は最大 MAX_PATH 文字に制限されている。
この制限をほぼ 32,000 ワイド文字へ拡張するには、この関数の Unicode 版を呼び出し、パスの前に "\\?\" という接頭辞を追加する。
lpNewFileName
lpExistingFileName
パラメータで指定した、ローカルコンピュータ上のファイルまたはディレクトリに割り当てるべき新しい名前を保持してい
る、NULL で終わる文字列へのポインタを指定する。
ファイルを移動する場合は、他のファイルシステムや他のドライブを指定してもかまわない。
ただし、他のドライブを指定する場合、dwFlags パラメータで MOVEFILE_COPY_ALLOWED フラグを指定しなければならない。
ディレクトリを移動する場合、他のドライブを指定できない。
dwFlags パラメータで MOVEFILE_DELAY_UNTIL_REBOOT
フラグを指定した場合、lpNewFileName パラメータで NULL を指定でき
る。
この場合、MoveFileEx 関数は、次にシステムを再起動する際に lpExistingFileName
で指定したファイルを削除するよう登録を行う。
lpExistingFileName パラメータでディレクトリを指定した場合、再起動時にそのディレクトリが空である場合に限って、システムはそのディレ
クトリを削除する。
dwFlags
移動方法を指示するフラグを指定する。次の値のいずれかまたは任意の組み合わせを指定する。
値
|
意味
|
MOVEFILE_COPY_ALLOWED
|
他のボリュームへファイルを移動するよう指示された場合、この関数は、CopyFile 関数と
DeleteFile 関数を使って、その動作をシミュレートする。
このフラグを、MOVEFILE_DELAY_UNTIL_REBOOT フラグと共に指定することはできない。
|
MOVEFILE_COPY_ALLOWED |
将来の使用に備えて予約されている。 |
MOVEFILE_DELAY_UNTIL_REBOOT
|
この関数は、オペレーティングシステムを再起動するまでファイルを移動しない。
システムは、AUTOCHK(Windows NT/2000 に付属していて、Chkdsk
に相当し、起動時に実行できる)を実行した直後、かつページングファイルを作成する前にファイルを移動する。その後、この値が指定されている場合は、この関数は前回のスタートアップに使ったページングファイルを削除できる。
このフラグを指定できるのは、Administrators グループに所属するユーザーのコンテキスト、または LocalSystem アカウントのコンテキストだけである。
このフラグを、MOVEFILE_COPY_ALLOWED フラグと共に指定することはできない。
|
MOVEFILE_FAIL_IF_NOT_TRACKABLE
|
Windows 2000:移動元ファイルがリンクソースの場合、このファイルは失敗する。
そして、移動後は、そのファイルのリンクトラッキングを行えない。FAT
ファイルシステムでフォーマットされたボリュームを移動先として指定すると、このような問題が発生することがある。
|
MOVEFILE_REPLACE_EXISTING
|
lpNewFileName パラメータで指定されたファイル名が既に存在していた場合、その内容を
lpExistingFileName パラメータで指定されたファイルに置き換える。
lpNewFileName と lpExistingFileName どちらかのパラメータでディレクトリを指定した場合
は、この値を利用できない。
|
MOVEFILE_WRITE_THROUGH
|
ファイルがディスク上で実際に移動するまで、制御を返さない。
このフラグを指定すると、コピーと削除の操作からなる移動操作をディスクへフラッシュした(実際
に書き込んだ)後、この関数から制御が返ることが保証される。コピー操作が終わった後、フラッシュが実施される。
このフラグは、MOVEFILE_DELAY_UNTIL_REBOOT フラグが指定されていると機能しない。
|
戻り値
関数が成功すると、0 以外の値が返る。
関数が失敗すると、0 が返る。拡張エラー情報を取得するには、GetLastError 関数を使う。
解説
dwFlags パラメータで MOVEFILE_DELAY_UNTIL_REBOOT
フラグを指定すると、MoveFileEx 関数は、再起動時に名前を変更するフ
ァイルの位置を、レジストリの次の値に格納する。 |