Функция 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 .
Возвращаемое значение
Если функция выполнена успешно, возвращаемое значение возвращает значение TRUE при передаче в макрос SUCCEEDED .
Код возврата | Описание |
---|---|
|
Операция копирования успешно завершена. |
|
Операция копирования была приостановлена COPYFILE2_PROGRESS_PAUSE возвратом функции обратного вызова CopyFile2ProgressRoutine . |
|
Операция копирования была приостановлена COPYFILE2_PROGRESS_CANCEL или COPYFILE2_PROGRESS_STOP возвратом функции обратного вызова CopyFile2ProgressRoutine . |
|
Элемент dwCopyFlags структуры COPYFILE2_EXTENDED_PARAMETERS , передаваемый через параметр pExtendedParameters , содержит флаг COPY_FILE_FAIL_IF_EXISTS и конфликтующее имя. |
|
Элемент dwCopyFlags структуры COPYFILE2_EXTENDED_PARAMETERS , передаваемый через параметр pExtendedParameters , содержит флаг COPY_FILE_FAIL_IF_EXISTS и конфликтующее имя. |
Комментарии
Эта функция сохраняет расширенные атрибуты, структурированное хранилище OLE, альтернативные потоки данных файловой системы NTFS и атрибуты файлов. Атрибуты безопасности для существующего файла не копируются в новый файл. Чтобы скопировать атрибуты безопасности, используйте функцию SHFileOperation .
Эта функция завершается ошибкой, HRESULT_FROM_WIN32(ERROR_ACCESS_DENIED)
если целевой файл уже существует и имеет FILE_ATTRIBUTE_HIDDEN или FILE_ATTRIBUTE_READONLY атрибут.
Чтобы скомпилировать приложение, использующее эту функцию, определите макрос _WIN32_WINNTкак _WIN32_WINNT_WIN8 или более поздней версии. Дополнительные сведения см. в разделе Использование заголовков Windows.
В Windows 8 и Windows Server 2012 эта функция поддерживается следующими технологиями.
Технология | Поддерживается |
---|---|
Протокол SMB 3.0 | Да |
SMB 3.0 Transparent Failover (TFO) | Да |
SMB 3.0 с масштабируемыми общими папками (SO) | Да |
Файловая система общего тома кластера (CSVFS) | Да |
Восстанавливаемая файловая система (ReFS) | Да |
Начиная с Windows 10 версии 1903 и Windows Server 2022, новое значение , COPY_FILE_REQUEST_COMPRESSED_TRAFFIC, поддерживается для поля dwCopyFlags структуры COPYFILE2_EXTENDED_PARAMETERS , передаваемой в аргументе pExtendedParameters этой функции. Это новое значение запрашивает, чтобы базовый канал передачи сжимал данные во время операции копирования. Запрос может поддерживаться не для всех носителей, и в этом случае он игнорируется. Атрибуты и параметры сжатия (сложность вычислений, использование памяти) не настраиваются с помощью этого API и могут изменяться в разных выпусках ОС. В Windows 10 флаг поддерживается для файлов, находящихся в общих папках SMB, где согласованная версия протокола SMB — SMB версии 3.1.1 или выше.
Требования
Минимальная версия клиента | Windows 8 [классические приложения | Приложения UWP] |
Минимальная версия сервера | Windows Server 2012 [классические приложения | Приложения UWP] |
Целевая платформа | Windows |
Header | winbase.h (включая Windows.h) |
Библиотека | Kernel32.lib |
DLL | Kernel32.dll |