Программирование на Ассемблере

       

Копирование или перемещение файлов


До копирования файл должен быть закрыт или открыт только для чтения. Для этого используются функции  CopyFile или CopyFileEx.

Для перемещения файла он должен быть закрыт. Для этого используются функции MoveFile и MoveFileEx, которые копируют файл в новый и удаляют старый.

Копирование существующего файла в новый.

BOOL CopyFile(

    LPCTSTR lpExistingFileName,      // Имя существующего файла

    LPCTSTR lpNewFileName,            // Имя результата

    BOOL bFailIfExists            // Флаги для определения действий для //существующего файла

   );      

bFailIfExists= TRUE

и новый файл уже существует, то ошибка;

 bFailIfExists= FALSE и новый файл уже существует, то файл пересоздается.

Замечание:

Атрибуты безопасности не копируются в результирующий файл.

Файловые атрибуты (FILE_ATTRIBUTE_*) копируются, например, если исходный файл был FILE_ATTRIBUTE_READONLY, то результирующий файл будет тоже только для чтения

Функция MoveFile переименовывает существующий файл или каталог, переносит, если надо с устройства на устройство и, если это каталог, то переносит все вложенные подкаталоги.

BOOL MoveFile(

    LPCTSTR lpExistingFileName,      // Имя существующего файла или каталога

    LPCTSTR lpNewFileName             // Новое имя файла или каталога

   );      

 

lpExistingFileName – имя существующего файла или каталога;

lpNewFileName – имя нового файла или каталога. Новое имя не должно существовать. Новое имя файла может соответствовать устройству с другой файловой системой. Новый каталог должен быть на том же устройстве.

Рекомендуем выполнить копирование (перемещение) файлов, используя стандартные функции WIN API и функции языка СPP и сравнить их по производительности!



Содержание раздела