Электронная библиотека книг Александра Фролова и Григория Фролова.
Shop2You.ru Создайте свой интернет-магазин
Библиотека
Братьев
Фроловых

Программирование для Windows NT

© Александр Фролов, Григорий Фролов
Том 26, часть 1, М.: Диалог-МИФИ, 1996, 272 стр.

[Назад] [Содеожание] [Дальше]

Еще несколько операций с файлами

Очень часто приложениям нужно выполнять такие операции, как копирование, перемещение или удаление файлов. В программном интерфейсе операционной системы Microsoft Windows NT есть удобные функции, предназначенные для выполнения этих операций.

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

Для копирования файла вы можете использовать функцию CopyFile:


BOOL CopyFile(
  LPCTSTR lpExistingFileName, // адрес пути 
                              // существующего файла 
  LPCTSTR lpNewFileName,      // адрес пути копии файла 
  BOOL    bFailIfExists);     // флаг перезаписи файла 

Через параметр lpExistingFileName вы должны передать путь к исходному файлу, кторый будет копироваться. Путь к файлу копии задается с помощью параметра lpNewFileName.

Параметр bFailIfExists определяет действия функции CopyFile, когда указанный в параметре lpNewFileName файл копии уже существует. Если значение параметра bFailIfExists равно TRUE, при обнаружении существующего файла копии функция CopyFile вернет признак ошибки (значение FALSE). Если же значение параметра bFailIfExists равно FALSE, существующий файл копии будет перезаписан.

Перемещение файла

С помощью функции MoveFile вы можете выполнить перемещение файла:


BOOL MoveFile(
  LPCTSTR lpExistingFileName, // адрес пути 
                              // существующего файла 
  LPCTSTR lpNewFileName);     // адрес пути копии файла 

Параметры lpExistingFileName и lpNewFileName, определяющие, соответственно, пути к старому и новому месторасположению файла, могут указывать на разные дисковые устройства.

Немного большими возможностями обладает другая функция, предназначенная для перемещения файлов, - функция MoveFileEx XE "MoveFileEx" :


BOOL MoveFileEx(
  LPCTSTR lpExistingFileName, // адрес пути 
                              // существующего файла 
  LPCTSTR lpNewFileName,      // адрес пути копии файла 
  DWORD   dwFlags);           // режим копирования

Дополнительный параметр dwFlags, определяющий один из режимов копирования, может принимать логическую комбинацию следующих значений:

 Значение

 Описание

 MOVEFILE_REPLACE_EXISTING

 Перемещение с замещением существующего файла

 MOVEFILE_COPY_ALLOWED

 Если файл перемещается на другое устройство, для перемещения используются функции CopyFile и DeleteFile (удаление файла). Это значение не совместимо со значением MOVEFILE_DELAY_UNTIL_REBOOT

 MOVEFILE_DELAY_UNTIL_REBOOT

 Файл будет перемещен только после перезапуска операционной системы Microsoft Windows NT

Режим MOVEFILE_DELAY_UNTIL_REBOOT удобен для создания программ автоматической установки приложений (инсталляторов).

Удаление файла

Для удаления файла вы должны использовать функцию DeleteFile:


BOOL DeleteFile(LPCTSTR lpFileName);

Параметр lpFileName задает путь к удаляемому файлу.

В случае успеха функция возвращает значение TRUE. При ошибке (например, при попытке удаления файла, открытого этим же или другим процессом), возвращается значение FALSE.

[Назад] [Содеожание] [Дальше]