Создание, открытие, закрытие и удаление файла
Перемещение файла
Для перемещение файла Win32 содержит две функции MoveFile и MoveFilеЕх:
BOOL MoveFile(LPCTSTR lpExistingFileName, LPCTSTR lpNewFileNam): BOOL MoveFileEx(LPCTSTR TpExistingFileName. LPCTSTR ipNewFileName. DWORD dwFlags):
Параметрами функции MoveFile являются указатели на ASCIIZ-строки с именами файла-источника и файла-приемника. Функция MoveFilеЕх обладает дополнительными свойствами благодаря наличию третьего параметра, который определяет особенности перемещения:
- MOVEFILE REPLACE_EXISTING=00000001h – при существовании целевого файла он замещается содержимым файла-источника;
- MOVEFILE_COPY_AL10WED=00000002h – если не указывать специально, то функция MoveFilеЕх не перемещает файлы на другой диск, а если перемещение требуется, необходимо устанавливать этот флаг;.
- MOVEFILE_DELAY_UNTIL_REBOOT=00000004h – (только для Windows NT и выше) файл-источник не удаляется до перезагрузки системы;
- MOVEFILE_WRITE_THROUGH=00000008h – установка флага гарантирует, что возврат из функции не произойдет до фактического перемещения и удаления файла.
Кроме этого, функция MoveFilеЕх допускает указание на месте второго параметра значения NULL, тем самым моделируя вызов функции DeleteFiIe.
При удачном завершении функции MoveFile и MoveFilеЕх возвращают ненулевое значение в регистре ЕАХ. В случае неудачи функции возвращают в регистре ЕАХ значение NULL.
:prg07_30.asm – Win32-nporpaммa консольного приложения для исследования :работы функции MoveFile(Ex) API Win32. : .data TitleText db 'Перемещение файлов в Win32'.О s_file db "p",0;имя входного файла d_file db "pi".0:имя выходного файла .code :……… push offset d_file push offset s_file call MoveFileA cmp eax.O jz exit:выход в случае неудачи
Переименование файла
Специальной функции для переименования файла нет, так как она и не нужна – перемещение файла в пределах одного каталога по сути и является его переименованием.
Удаление файла
Для удаления файла применяется функция DeleteFile:
BOOL DeleteFile(LPCTSTR TpFileName);
У нее единственный параметр – указатель на ASCIIZ-строку с именем (путем) удаляемого файла. Перед удалением файл необходимо закрыть, хотя в некоторых версиях Windows это не является обязательным.
При удачном завершении функция возвращает ненулевое значение в регистре ЕАХ. В случае неудачи функция возвращает в регистре ЕАХ значение NULL.