Функция CopyFile


Функция 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.

 Замечания по платформе

Не имеется

 

Назад в оглавление
На главную страницу
На оглавление справки

Hosted by uCoz