Функция CopyFile копирует существующий файл в новый файл.
Функция CopyFileEx обеспечивает две дополнительных возможности. CopyFileEx может вызывать указанную функцию обратного вызова каждый раз, когда завершается часть операции копирования и CopyFileEx может быть отменена в ходе операции копирования.
Синтаксис
BOOL CopyFile( LPCTSTR lpExistingFileName, // имя существующего файла LPCTSTR lpNewFileName, // имя нового файла BOOL bFailIfExists // операция, если файл существует ); |
Параметры
lpExistingFileName
[in] Указатель на символьную строку с нулем в конце, которая определяет имя существующего файла.Windows NT/2000/XP: В версии ANSI этой функции, число символов имени ограничивается флажком MAX_PATH. Чтобы выйти за пределы этого ограничения до длины равной 32767 символам, вызовите Unicode версию функции и присоедините спереди пути "\\?\". Подробную информацию см. статье Именование файлов.
Windows 95/98/Me: Эта строка не должна выходить за пределы, установленные флажком MAX_PATH.
lpNewFileName
[in] Указатель на символьную строку с нулем в конце, которая определяет имя нового файла.Windows NT/2000/XP: В версии ANSI этой функции, число символов имени ограничивается флажком MAX_PATH. Чтобы выйти за пределы этого ограничения до длины равной 32767 символам, вызовите Unicode версию функции и присоедините спереди пути "\\?\". Подробную информацию см. статье Именование файлов.
Windows 95/98/Me: Эта строка не должна выходить за пределы, установленные флажком MAX_PATH.
bFailIfExists
[in] Если этот параметр - ИСТИНА (TRUE), а новый файл, заданный параметром lpNewFileName уже существует, функция завершается ошибкой. Если этот параметр - ЛОЖЬ (FALSE), а новый файл уже существует, функция записывает поверх существующего файла и завершается успешно.Возвращаемые значения
Если функция завершается успешно, возвращаемое значение - не нуль.
Если функция завершается с ошибкой, величина возвращаемого значения - нуль. Чтобы получить дополнительные сведения об ошибке, вызовите GetLastError.
Замечания
Атрибуты защиты существующего файла не копируются в новый файл. Чтобы скопировать атрибуты защиты, используйте функцию SHFileOperation.
Атрибуты существующего файла копируются в новый файл. Например, если существующий файл имеет атрибут FILE_ATTRIBUTE_READONLY, копия, созданная посредством вызова функции CopyFile, будет также иметь атрибут файла FILE_ATTRIBUTE_READONLY. Подробную информацию см. в статье Извлечение и изменение атрибутов файла.
Эта функция завершается ошибкой ERROR_ACCESS_DENIED, если получившийся файл уже существует и имеет установленный атрибут FILE_ATTRIBUTE_HIDDEN или FILE_ATTRIBUTE_READONLY.
Windows XP: Когда CopyFile используется для копирования зашифрованного файла, функция пытается зашифровать выходной файл с ключом использованным в шифровании исходного файла. Если она этого не может сделать, функция пытается зашифровать выходной файл со значением ключа по умолчанию, как в Windows 2000. Если оба этих способа не могут выполнить действие, CopyFile, завершается с ошибкой, код которой ERROR_ENCRYPTION_FAILED.
Windows 2000: Когда CopyFile используется для копирования зашифрованного файла, функция пытается зашифровать выходной файл ключом по умолчанию. Не пытайтесь сделать так, чтобы зашифровать выходной файл с ключом использованным в кодировании исходного файла. Если файл не может быть зашифрован, CopyFile заканчивает операцию копирования, не зашифровав выходной файл.
Код примера
Пример смотри в статье Извлечение и изменение атрибутов файла.
Смотри также
Обзор Управление файлами, Функции, используемые в управлении файлами, CopyFileEx, CreateFile, MoveFile
Размещение и совместимость CopyFile |
||
К |
Windows XP |
Да |
л |
Windows 2000 Professional |
Да |
и |
Windows NT Workstation |
Да |
е |
Windows Me |
Да |
н |
Windows 98 |
Да |
т |
Windows 95 |
Да |
С |
Windows Server 2003 |
Да |
е | Windows 2000 Server | Да |
р | Windows NT Server | Да |
в | ||
е | ||
р | ||
Используемая библиотека |
Kernel32.lib |
|
Используемая DLL | - | |
Заголовочный файл | ||
- объявлено в |
Winbase.h |
|
- включено в |
Windows.h |
|
Unicode |
Реализуется как версии Unicode и ANSI для Windows 2000/XP. Обратите внимание на то, что поддержка в Windows Me/98/95 требует программы Microsoft Layer for Unicode. |
|
Замечания по платформе |
Не имеется |