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



         

Работа с файлами в MS DOS (длинные имена) - часть 3


до 5 символов, и т. д.

Рассмотренные выше функции MS DOS для работы с файлами и каталогами не поддерживают длинных имен. Для этого система Windows 95/98 предоставляет приложениям MS DOS аналогичные функции, но имеющие другие номера. Впрочем, при внимательном рассмотрении большинства из этих номеров, видно, какой из старых функций они соответствуют. Новые номера состоят из четырех цифр: первые две — 071h, последние две — номер старой функции. Для некоторых функций существуют особенности в их работе. Так, для поиска файлов по-прежнему используются две функции (по новой нумерации — 714eh и 714fh) прерывания 21h. Новые функции теперь возвращают информацию о файлах через специальную структуру WI N32_F INDDATA, адрес которой возвращается в качестве

результата их работы.

При работе с функциями, поддерживающими длинные имена файлов, используются еще две структуры: by handle_f 11 e_information и filetime. Назначение структуры by_hand1e_file_iinformation и работу с ней мы рассмотрим при обсуждении функции MS DOS 71a6h. Структура filetime содержит 64-разрядное значение, которое определяет число 100-наносекундных интервалов, прошедших с 12:00 утра 1 января 1901 года.

FILETIME Struc

DwLowDateTime dd ? :младшие 32 бита значения времени DwHighDateTime dd ? хтаршие 32 бита значения времени FILETIME ends

Теперь приведем перечень функций прерывания 21h, работающих с файлами, которые имеют длинные имена. Для удобства дальнейшего рассмотрения в следующей таблице приведены соответствующие функции API WIN32 и «старые» функции прерывания 21h.

Новая

функция int 21h

Старая

функция int 21h

Назначение

Функция API Win32

5704h

Получить дату и время последнего доступа

GetFileTime

5705h

Установить дату и время

SetFileTime

последнего доступа

5706h

Получить дату и время создания

GetFileTime

5707h

Установить дату и время создания

SetFileTime

7139h

39h

Создать каталог

CreateDirectory

713Ah

3ah

Удалить каталог

RemoveDirectory

713Bh

3bh

Изменить текущий каталог

SetCurrentDi rectory

7141h

41h

Удалить файл

DeleteFile

7143h

43h

Получить или установить

GetFileAttributes,

атрибуты файла

SetFileAttributes

7147h

47h

Получить текущий каталог

GetCurrentDirectory

714Eh

4Eh

Найти первый файл

FindFirstFile

714Fh

4Fh

Найти следующий файл

FindNextFile

7156h

56h

Переименовать файл

MoveFile

7160h

Получить полный путь

GetFullPathName

7160h

Получить полный путь

GetShortPathName

с-краткими именами

7160h

Получить полный путь

Отсутствует

с длинными именами

716Ch

3ch, 3dh, 5bh

Создать или открыть файл

CreateFile, OpenFile

71A0h

Получить информацию о томе

GetVolumelnfonnati on

71Alh

Завершить поиск

FindClose

71A6h

Получить информацию о файле

GetFi1 elnformationByHandle

по описателю

71A7h

Преобразовать время файла

Fi1eTi meToDOSDateTime

в DOS-время

71A7h

Преобразовать DOS-время во время файла

00SDateTi meToFi1eTi me

71A8h

Создать псевдоним

Отсутствует

71A9h

Создать или открыть файл

Отсутствует

на сервере

71AAh

Провести подмену

Отсутствует

71AAh

Отменить подмену

Отсутствует

71AAh

Получить информацию

Отсутствует

о подмене

Рассмотрим наиболее интересные в контексте нашего изложения функции этой таблицы. Информацию по остальным функциям можно получить, в частности, из MSDN. Порядок рассмотрения будет от простых функций к сложным, так как это было в предыдущем разделе, посвященном функциям работы с файлами ДО DOS, имеющими короткие имена.




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