ファイルの移動と置換
コピー操作を実行する前に、ソース ファイルを閉じるか、読み取り専用に開く必要があります。 書き込み用にソース ファイルを開くことができるスレッドはありません。 既存のファイルを新しいファイルにコピーするには、CopyFile 関数または CopyFileEx 関数を使用します。 アプリケーションでは、コピー先 ファイル が既に存在する場合に CopyFile と CopyFileEx が失敗するかどうかを指定できます。 コピー先ファイルが存在し、開いている場合は、該当する共有アクセス許可を使用して開かれている必要があります。 詳細については、「 CreateFile」を参照してください。
CopyFileEx 関数を使用すると、ファイルの別の部分がコピーされるたびに呼び出されるコールバック関数 (CopyProgressRoutine を参照) のアドレスをアプリケーションで指定することもできます。 アプリケーションは、この情報を使用して、コピーされたバイトの合計数を合計ファイル サイズの割合として示すインジケーターを表示できます。
ReplaceFile 関数は、1 つのファイルを別のファイルに置き換え、元のファイルのバックアップ コピーを作成するオプションで置き換えます。 関数は、作成時刻、ACL、暗号化属性など、元のファイルの属性を保持します。
また、アプリケーションがファイルを移動する前に、ファイルを閉じる必要があります。 MoveFile 関数と MoveFileEx 関数は、既存のファイルを新しい場所にコピーし、元のファイルを削除します。
MoveFileEx 関数を使用すると、アプリケーションでファイルの移動方法を指定することもできます。 関数は、既存のファイルを置き換えたり、ボリューム間でファイルを移動したり、オペレーティング システムが再起動されるまでファイルの移動を遅らせることができます。