Сборник по задачам и примерам Assembler

       

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



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

Для перемещение файла Win32 содержит две функции MoveFile и MoveFi 1 еЕх:

BOOL MoveFile(LPCTSTR lpExistingFileName, LPCTSTR lpNewFileNam):

BOOL MoveFileEx(LPCTSTR TpExistingFileName. LPCTSTR ipNewFileName. DWORD dwFlags):

Параметрами функции MoveFile являются указатели на ASCIIZ-строки с именами файла-источника и файла-приемника. Функция MoveFi 1 еЕх обладает дополнительными свойствами благодаря наличию третьего параметра, который определяет особенности перемещения:

  • MOVEFILE REPLACE_EXISTING=00000001h - при существовании целевого файла он замещается содержимым файла-источника;
  • MOVEFILE_COPY_AL10WED=00000002h - если не указывать специально, то
  • функция MoveFi 1 еЕх не перемещает файлы на другой диск, а если перемещение требуется, необходимо устанавливать этот флаг; .
  • MOVEFILE_DELAY_UNTIL_REBOOT=00000004h - (только для Windows NT и выше) файл-источник не удаляется до перезагрузки системы;
  • MOVEFILE_WRITE_THROUGH=00000008h — установка флага гарантирует, что возврат из функции не произойдет до фактического перемещения и удаления файла.
  • Кроме этого, функция MoveFi 1 еЕх допускает указание на месте второго параметра значения NULL, тем самым моделируя вызов функции Del eteFi I e.

    При удачном завершении функции MoveFile и MoveFi 1 еЕх возвращают ненулевое значение в регистре ЕАХ. В случае неудачи функции возвращают в регистре ЕАХ значение NULL.

    :prg07_30.asm - Win32-nporpaMMa консольного приложения для исследования :работы функции 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 :выход в случае неудачи



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