<Return[MN]><Top>

MoveFile

Declare Function Api_MoveFile& Lib "Kernel32" Alias "MoveFileA" (ByVal lpExistingFileName$, ByVal lpNewFileName$)

Declare Function MoveFile Lib "kernel32" Alias "MoveFileA" (ByVal lpExistingFileName As String, ByVal lpNewFileName As String) As Long

既存のファイルまたはディレクトリを、それらの子も含め、移動する。
ファイルを移動する方法を指定するには、MoveFileEx 関数を使う

パラメータ
lpExistingFileName
    既存のファイル名またはディレクトリ名を保持している、NULL で終わる文字列へのポインタを指定する。
    Windows NT/2000:この関数の ANSI 版では、名前は最大 MAX_PATH 文字に制限されています。

    この制限をほぼ 32,000 ワイド文字へ拡張するには、この関数の Unicode 版を呼び出し、パスの前に "\\?\" という接頭辞を追加する。
    Windows 95/98:文字列の長さは、最大 MAX_PATH 文字である。
lpNewFileName
    ファイルまたはディレクトリの新しい名前を保持している、NULL で終わる文字列へのポインタを指定する。

    新しいファイル名は、既存のものと重複していてはならない。

    ファイルを移動する場合、新しいファイル名で他のファイルシステムや他のドライブを指定してもかまわない。

    ディレクトリを移動する場合、同じドライブを指定しなければならない。
    Windows NT/2000:この関数の ANSI 版では、名前は最大 MAX_PATH 文字に制限されている。

    この制限をほぼ 32,000 ワイド文字へ拡張するには、この関数の Unicode 版を呼び出し、パスの前に "\\?\" という接頭辞を追加する。
    Windows 95/98:文字列の長さは、最大 MAX_PATH 文字である。

戻り値
    関数が成功すると、0 以外の値が返る。
    関数が失敗すると、0 が返る。拡張エラー情報を取得するには、GetLastError 関数を使う。

解説
    関数は、ファイルまたはディレクトリを(ディレクトリの場合は、その子も含め)移動し、指定された場合は名前の変更も行う。

    移動先は、同じディレクトリでもかまいませんし(この場合は名前の変更のみ)、他のディレクトリでもかまわない。

    ただし、ディレクトリを他のボリュームへ移動しようとすると、MoveFile 関数が失敗することに注意すること。
    Windows 2000:MoveFile 関数は、分散リンクトラッキング機能と協調して動作するので、ファイルやディレクトリを移動した場合も、引き続

    きリンクソースのトラッキングを行える。