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



         

Определение и изменение текущего каталога - часть 2


Для демонстрации применения вышеприведенных функций рассмотрим комплексный пример, в ходе которого продемонстрируем порядок вызова и анализа Е возвращаемых значений функциями API Win32 для работы с каталогами. Опре-

делим текущий каталог процесса, создадим новый каталог, сделаем его текущим удалим новый каталог, определим системный каталог и каталог Windows.

:prg07_35.asm - Win32-KOHCo/ibHoe приложение для исследования работы функций ;работы с каталогами API Win32.

.data

TitleText db 'Работа с каталогами в Win32',0

NewOir db "Новый каталог".0

dirjbuf db 50 dup ("?")

size_dir_buf=$-dir_buf

Parent db "..".0

.code

:определив текущий каталог

push offset dirjwf

push size_dir_buf

call GetCurrentDirectoryA

cmp eax.0

jz exit ;выход в случае неудачи :создадим каталог

push 0

push offset NewDir .

call CreateDirectoryA

cmp eax,0

jz exit :выход в случае неудачи ¦.сделаем новый каталог текущий

push offset NewDir

call SetCurrentDirectoryA

cmp eax.0

jz exit ;выход в случае неудачи

;проверим новый текущий каталог

push offset dir_buf

push size_dir_buf

call GetCurrentDirectoryA

cmp eax.0

jz exit .-выход в случае неудачи

;------.....SetCurrentDi rectory-..................-.........

:вернемся в родительский каталог

push offset Parent

call SetCurrentDirectoryA

cmp eax.0

jz exit ;выход в случае неудачи

;проверил новый текущий каталог

push offset dir_buf

push size_dir_buf

call GetCurrentDirectoryA

cmp eax.O

jz exit :выход в случае неудачи :удалим новый текущий каталог

push offset NewDir

call RemoveDirectoryA

cmp eax.O

jz exit ;выход в случае неудачи I определив системный каталог mov eax.size_dir_buf push eax

push offset dir_buf call GetSystemDirectoryA cmp eax.O

jz exit :выход в случае неудачи ¦.определим основной каталог Windows mov eax.size_d1r_buf push eax

push offset dir_buf call GetWindowsDirectoryA cmp eax.O

jz exit -.выход в случае неудачи результат смотрим в отладчике TD32.exe

Среди функций Win32, работающих с текущим каталогом, существует функция GetFuT I PathName, которая по имени файла формирует его полное имя, состоящее из пути от корневого каталога к текущему. Последний элемент этого имени — имя входного файла.




Содержание  Назад  Вперед