Перемещение и замена файлов

Перед выполнением операции копирования исходный файл должен быть закрыт или открыт только для чтения. Ни в каких потоках не может быть открыт исходный файл для записи. Чтобы скопировать существующий файл в новый, используйте функцию CopyFile или CopyFileEx . Если целевой файл уже существует, приложения могут указать, будут ли выполняться сбои CopyFile и CopyFileEx . Если целевой файл существует и открыт, он должен быть открыт с соответствующими разрешениями общего доступа. Дополнительные сведения см. в разделе CreateFile.

Функция CopyFileEx также позволяет приложению указать адрес функции обратного вызова (см. раздел CopyProgressRoutine), которая вызывается при каждом копировании другой части файла. Приложение может использовать эти сведения для отображения индикатора, который показывает общее количество байтов, скопированных в процентах от общего размера файла.

Функция ReplaceFile заменяет один файл другим с возможностью создания резервной копии исходного файла. Функция сохраняет атрибуты исходного файла, такие как время создания, списки управления доступом и атрибут шифрования.

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

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