Иллюстрированный самоучитель по задачам и примерам Assembler

Создание, открытие, закрытие и удаление файла

Закрытие файла

Закрытие файла производится функцией CloseHandle:

B00L CloseHandle(HANDLE hObject);

Функция имеет один параметр размером в двойное слово – дескриптор, полученный при открытии файла функцией CreateFile.

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

Win32 поддерживает несколько функций для часто используемых операций над файлами: копирование, перемещение и переименование файлов.

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

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

B00L CopyFile(LPCTSTR lpExistingFileName. LPCTSTR ipNewFileName. B00L bFailIfExists):

Параметрами этой функции являются:

  • lpExistingFileName – указатель на ASCIIZ-строку с именем файла-источника;
  • lpNewFileName – указатель на ASCIIZ-строку с именем файла-приемника, который может и не существовать;
  • bFailIfExists – параметр, задаваемый равным 0 или 1, в зависимости от условий копирования:
  • 0 – при наличии файла он удаляется и создается новый с содержимым файла-источника;
  • 1 – при наличии файла копирование не производится, а функция CopyFile возвращает ошибку.

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

;prg07_29.asm – Win32-nporpaммa консольного приложения для исследования
;работы функции CopyFile API Win32.
;………………………………………………….
.data
TitleText db 'Копирование файлов в Win32'.О
s_file db "p".O;имя входного файла
d_file db "pi".0;имя выходного файла
.code
mov eax.l
push eax
push offset d_file
push offset s_file
call CopyFileA
cmp eax.O
jz exit.выход в случае неудачи
:………
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.