CopyFile2 関数 (winbase.h)
既存のファイルを新しいファイルにコピーし、コールバック関数を介してその進行状況をアプリケーションに通知します。
構文
HRESULT CopyFile2(
[in] PCWSTR pwszExistingFileName,
[in] PCWSTR pwszNewFileName,
[in, optional] COPYFILE2_EXTENDED_PARAMETERS *pExtendedParameters
);
パラメーター
[in] pwszExistingFileName
既存のファイルの名前。
この制限を 32,767 文字のワイド文字に拡張するには、パスの先頭に "\?" を付加します。 詳細については、「ファイル、パス、および名前空間の名前付け」を参照してください。
HRESULT_FROM_WIN32(ERROR_FILE_NOT_FOUND)
します。
[in] pwszNewFileName
新しいファイルの名前。
この制限を 32,767 文字のワイド文字に拡張するには、パスの先頭に "\?" を付加します。 詳細については、「ファイル、パス、および名前空間の名前付け」を参照してください。
[in, optional] pExtendedParameters
COPYFILE2_EXTENDED_PARAMETERS構造体の省略可能なアドレス。
戻り値
関数が成功した場合、SUCCEEDED マクロに渡されると、戻り値は TRUE を返します。
リターン コード | 説明 |
---|---|
|
コピー操作が正常に完了しました。 |
|
コピー操作は、CopyFile2ProgressRoutine コールバック関数から返されるCOPYFILE2_PROGRESS_PAUSEによって一時停止されました。 |
|
コピー操作は、COPYFILE2_PROGRESS_CANCELによって一時停止されたか、CopyFile2ProgressRoutine コールバック関数から返COPYFILE2_PROGRESS_STOP。 |
|
pExtendedParameters パラメーターを介して渡されるCOPYFILE2_EXTENDED_PARAMETERS構造体の dwCopyFlags メンバーには、COPY_FILE_FAIL_IF_EXISTS フラグが含まれており、競合する名前が存在します。 |
|
pExtendedParameters パラメーターを介して渡されるCOPYFILE2_EXTENDED_PARAMETERS構造体の dwCopyFlags メンバーには、COPY_FILE_FAIL_IF_EXISTS フラグが含まれており、競合する名前が存在します。 |
解説
この関数は、拡張属性、OLE 構造化ストレージ、NTFS ファイル システム代替データ ストリーム、およびファイル属性を保持します。 既存のファイルのセキュリティ属性は、新しいファイルにコピーされません。 セキュリティ属性をコピーするには、 SHFileOperation 関数を使用します。
変換先ファイルが既に存在し、FILE_ATTRIBUTE_HIDDENまたはFILE_ATTRIBUTE_READONLY属性が設定されている場合、この関数は で失敗します。HRESULT_FROM_WIN32(ERROR_ACCESS_DENIED)
この関数を使用するアプリケーションをコンパイルするには、 _WIN32_WINNT マクロを _WIN32_WINNT_WIN8 以降として定義します。 詳細については、「 Windows ヘッダーの使用」を参照してください。
Windows 8 と Windows Server 2012 では、この関数は、次のテクノロジによってサポートされています。
テクノロジ | サポートされています |
---|---|
サーバー メッセージ ブロック (SMB) 3.0 プロトコル | はい |
SMB 3.0 Transparent Failover (TFO) | はい |
スケールアウト ファイル共有 (SO) を使う SMB 3.0 | はい |
クラスターの共有ボリューム ファイル システム (CsvFS) | はい |
Resilient File System (ReFS) | はい |
Windows 10 バージョン 1903 および Windows Server 2022 以降では、pExtendedParameters 引数でこの関数に渡されるCOPYFILE2_EXTENDED_PARAMETERS構造体の dwCopyFlags フィールドに対して、新しい値である COPY_FILE_REQUEST_COMPRESSED_TRAFFIC がサポートされています。 この新しい値は、コピー操作中に基になる転送チャネルがデータを圧縮することを要求します。 要求は、すべてのメディアでサポートされていない場合があり、その場合は無視されます。 圧縮属性とパラメーター (計算の複雑さ、メモリ使用量) は、この API では構成できません。また、異なる OS リリース間で変更される可能性があります。 Windows 10では、SMB 共有に存在するファイルに対してフラグがサポートされます。この場合、ネゴシエートされた SMB プロトコルのバージョンは SMB v3.1.1 以降です。
要件
サポートされている最小のクライアント | Windows 8 [デスクトップ アプリ |UWP アプリ] |
サポートされている最小のサーバー | Windows Server 2012 [デスクトップ アプリ |UWP アプリ] |
対象プラットフォーム | Windows |
ヘッダー | winbase.h (Windows.h を含む) |
Library | Kernel32.lib |
[DLL] | Kernel32.dll |