Получить полный путь с краткими именами (в формате 8.3)
Получить полный путь с краткими именами (в формате 8.3)
Вход: АН = 7160h; CL = 1; СН — содержимоое результата (СН = 80 — получить имя диска; СН = 0 — получить полный путь); DS:SI — адрес ASCIIZ-строки с именем файла или каталога, для ксоторых необходимо получить путь в короткой форме. Допускаются оба . типа имен — длинные и короткие: ES:DI — адрес строки, в которую необходцимо записать полный путь. Размер буфера должен быть достаточным длят размещения пути максимальной длины
(функция 71a0h).
Выход: CF = 0 — успешное выполнение функции, в результате чего полный путь от корневого каталога в виде /ASCIZ-строки записывается в буфер, адрес которого указан в ES: DI; CF ' = 1 — АХ = код ошибки.
:prg07_25.asm - программа демонстрации применения функции 7160h (CL=1) прерывания 21h для получения полного путии с краткими именами (в формате 8.3)
filename db 'my_file with lorg name.:.txt' .0
point_fname dd filename
PathFUll db 260 аир (О)
pointjath dd PathFull
* Ids si .pointjfname формирует указатель на имя файла lesdi.point_Path сформируем учазатель на буфер для полного пути movax.7160h :номер функции DOS
movch.80h ;CH»80h - попучить « имя диска; СН=0 - получить полный путь
movCL.l :получить пспный пууть с краткими именами
На выходе функция формирует стрроку, содержащую полный путь, причем все I Длинные компоненты этого пути замееняются их краткими псевдонимами, удовлетворяющими схеме 8.3. Данный вариант функции (при CL = 1) в отличие от ее Предыдущего варианта, производит прроверку наличия файла или пути.