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

В этом разделе будут приведены



Файловый ввод-вывод в Win32

В этом разделе будут приведены минимальные сведения, необходимые для выполнения простых операций с файлами. В отличие от MS DOS среда Win32 способна поддерживать несколько файловых систем. Главные требования к этим системам — иерархичность и соблюдение определенных правил присвоения имен каталогам и файлам.

Перечислим функции API Win32, имеющие отношение к работе с файловой системой. Полное их описание можно получить в MSDN.



Функция Назначение
AreFileApisANSI Определение набора символов файла — ANSI или OEM
CancelIo Отменить все ждущие обработки операции (I/O) ввода и вывода
CloseHandle Закрыть открытый дескриптор файла
CopyFile, CopyFileEx CopyProgressRoutine Копирование cуществующего файла в новый
CreateDi rectory, CreateDirectoryEx Определенная приложением функция обратного вызова, используемая с функциями CopyFileEx и MoveFileWithProgress. Она вызывается, когда завершается часть операции копирования или пересылки
CreateFile Создать каталог
DefineDosDevice Создать файл или объект специального типа
DeleteFile Определить, переопределить или удалить имена устройства MS DOS
FindCiose Удалить файл
Fi ndCloseChangeNoti fi cati on Закрыть указанный поисковый дескриптор (см. функции FindFirstFile и FindNextFile)
FindFi rstChangeNoti fication Закрыть объект-уведомление об изменении файла
FindFirstFile, FindFirstFileEx, FindNextFile Создать объект-уведомление об изменении файла
F1ndNextChangeNoti fi cati on Поиск файлов
FlushFileBuffers Сброс объекта-уведомления в занятое состояние
GetBinaryType Очистка буфера для указанного файла и запись всех буферизированных данных в файл
GetCurrentDirectory Определить, является ли файл исполняемым, и если это так, то для какой подсистемы — Win32, MS DOS, OS/2, POSIX и т. д.
GetDiskFreeSpace, GetDiskFreeSpaceEx Получить текущий каталог
GetDriveType Информация относительно указанного диска, включая количество свободного пространства на нем
GetFileAttributes, GetFileAttributesEx Определить тип диска — съемный, фиксированный, CD-ROM, электронный или сетевой
GetFi1elnformati onByHandle Получить атрибуты файла или каталога
GetFi1eSi ze, GetFi1eSi zeEx Найти информацию относительно указанного файла
GetFileType Получить размер указанного файла
GetFullPathName Получить тип указанного файла
GetLogical Drives, GetLogi calDri veStri ngs Получить полный путь и имя для указанного файла
GetLongPathName Определить доступные в настоящее время дисководы
GetShortPathName Преобразовать указанный путь к его длинной форме
GetTempFileName Получить псевдоним файла
GetTempPath Создать имя для временного файла
LockFile, LockFileEx Получить путь каталога для временных файлов Блокировка файла
Далее на примерах конкретных программ разберемся с тем, как использовать в программах на ассемблере наиболее интересные и часто применяемые функции из перечисленных выше для работы с файлами API Win32. В целях экономии места все примеры реализованы в виде консольных приложений. Основное внимание уделено не полноте описания параметров для вызова той или иной функции и результатов ее работы (эту информацию можно найти в справочниках по функциям API), а деталям практической реализации файловых операций в программах на языке ассемблера. Для изучения подробностей работы функций API Win32 необходимо использовать какой-либо отладчик для Windows, напри-MepTD32.EXE.


Содержание раздела