Работа с дисками, каталогами и организация поиска файлов
Получить полный путь с длинными именами
Вход: АН = 7160h; CL = 2;
СН – содержимое результата (СН = 80 – получить имя диска; СН = 0 – получить полный путь);
DS:SI – адрес ASCIIZ-строки с именем файла или каталога, для которых необходимо получить путь в длинной форме. Допускаются оба типа имен – длинные и короткие;
ES:DI – адрес строки, в которую необходимо записать полный путь. Размер буфера должен быть достаточным для размещения пути максимальной длины (функция 71a0h).
Выход: CF = 0 – успешное выполнение функции, в результате чего полный путь от корневого каталога в виде ASCIZ-строки записывается в буфер, адрес которого указан в ES:DI;
CF = 1 – АХ = код ошибки.
Получить информацию о файле по описателю
Вход: АН = 71A6h; флаг cf = 1; ВХ = дескриптор файла; DS:DX – адрес структуры BYHANDLEFILEINFORMATION.
Выход: CF = 0 – успешное выполнение функции;
CF = 1 – АХ = код ошибки.
Формат структуры BYHANDLEFILEINFORMATION приведен ниже.
Y_HANDLE_FILE_INFORMATION StuiC "DwFiieAttributes dd? FtCreationTimedd 2 dup(?) FtLastAccessTime dd 2 dup(?) FtLastWriteTime dd 2 dup(?) DwVolumeSeria 1 Number dd? NFileSizeHigh dd? NfileSizeLow dd? NnunberOfLinksdd? NFilelndexHighdd? NFilelndexLow dd? BY_HANDLE_FILE_INFORMATION ends
Поля этой структуры описаны в следующей таблице.
Поле | Описание |
---|---|
dwFileAttributes | Атрибуты файла. Этот элемент может быть комбинацией следующих значений: FI LE_ATTR IBUTENORMAL (00000000H) – файл доступен по чтению и записи; этот атрибут нельзя комбинировать с другими; FILE_ATTRIBUTE_READONLY (00000001Н) – файл только для чтения; FILE_ATTRIBUTE_HIDDEN (00000002H) – скрытый файл; FILE_ATTRIBUTE_SYSTEM (00000004H) – системный файл; FILE_ATTR IBUTEDI RECTORY (00000010H) – каталог; FILE ATTRIBUTE ARCHIVE (00000020H) – архивный файл |
CreationTime | Время создания файла в 64-разрядном формате |
ftLastAccessTime | Время последнего доступа к файлу в 64-разрядном формате |
ftLastWriteTime | Время последней записи в файл в 64-разрядном формате |
dwVolumeSerialNumber | Серийный помер тома, на котором находится файл |
NFileSizeHigh | Старшее слово значения, определяющего размер файла |
NFiieSizeLow | Младшее слово значения, определяющего размер файла |
NNumberOfLinks | Число связей с данным файлом. В файловых системах FAT и HPFS этот элемент всегда равен 1. В файловой системе NTFS число связей может превышать 1 |
NFilelndexHigh | Старшее слово уникального дескриптора, связанного с файлом |
NFilelndexLow | Младшее слово уникального дескриптора, связанного с файлом. Файл однозначно определяется дескриптором и серийным номером тома |