Читайте также:
|
|
Теоретический материал изложен в книге [1], основные функции Win32 API используемые для работы с файлами и каталогами:
1. CreateFile – создание или открытие файла
2. DeleteFile – удаление файла
3. CloseHandle – закрытие файла
4. ReadFile – чтение из файла
5. WriteFile – запись в файл
6. LockFile – блокировка файла
7. UnlockFile – разблокировка файла
8. FindFirstFile – поиск первого файла по заданному имени или маске
9. FindNextFile – поиск каждого последующего файла по заданной маске
10. FindClose – завершение поиска
11. SetFilePointer – установка указателя в файле
12. CreateDirectory – создание каталога
13. RemoveDirectory – удаление пустого каталога
Примечание:
· удаление каталога, поскольку функция RemoveDirectory удаляет лишь пустые каталоги. Реализовать функцию удаления любых каталогов с использованием рекурсии или стеков на основе функций RemoveDirectory, FindFirstFile, FindNextFile, FindClose и DeleteFile;
· При создании проекта необходимо использовать библиотеку kernel32.lib;
· в исходном файле подключать заголовочные файлы: (“windows.h”, “winbase.h”).
Создание файла: функция CreateFile (подробное описание функции в книге [1] на стр.47)
HANDLE CreateFile( LPCTSTR lpFileName, // pointer to name of the file DWORD dwDesiredAccess, // access (read-write) mode DWORD dwShareMode, // share mode LPSECURITY_ATTRIBUTES lpSecurityAttributes, // pointer to security attributes DWORD dwCreationDisposition, // how to create DWORD dwFlagsAndAttributes, // file attributes HANDLE hTemplateFile // handle to file with attributes to // copy ); |
Параметры вызова функции CreateFile:
lpFileName – указатель на имя файла, который требуется открыть или создать. Указатель содержит путь к файлу.
dwDesiredAccess – параметр, определяет какие действия можно производить с содержимым файла.
Константы значений:
чтение информации о файле | |
GENERIC_READ | разрешено чтение из файла |
GENERIC_WRITE | разрешена запись в файл |
GENERIC_READ | GENERIC_WRITE | разрешено чтение из файла и запись в файл |
dwShareMode – параметр, определяет права по совместному доступу разных процессов к файлу.
Константы значений:
чтение информации о файле | |
FILE_SHARE_READ | разрешено чтение из файла |
FILE_SHARE_WRITE | разрешена запись в файл |
FILE_SHARE_READ | FILE_SHARE_WRITE | разрешено чтение из файла и запись в файл |
lpSecurityAttributes – параметр, защиты файла. Значение NULL означает, что защита не требуется.
dwCreationDisposition – параметр, определяет какие действия необходимо произвести в тех случаях, когда файл уже существует и когда файл не существует.
Константы значений:
CREATE_NEW | Создается новый файл. Если файл существует, то функция завершается с ошибкой. |
CREATE_ALWAYS | Создается новый файл. Если файл существует, то он перезаписывается. |
OPEN_EXISTING | Открывается существующий файл. Если файл не существует, то функция завершается с ошибкой. |
OPEN_ALWAYS | Открывается существующий файл. Если файл не существует, то создается новый файл. |
dwFlagsAndAttributes – параметр, указывает атрибуты и флаги для файла. Флаги можно комбинировать друг с другом.
Константы значений: [1], стр.50.
hTemplateFile – параметр указывает HANDLE уже открытого файла или NULL.
Пример: Программа создания и закрытия файла.
Запись данных в файл: функция WriteFile (подробное описание функции в книге [1] на стр.56)
BOOL WriteFile( HANDLE hFile, // указатель на имя файла LPVOID lpBuffer, // указатель на буфер записываемых данных DWORD nNumberOfBytesToRead, // количество записываемых байт LPDWORD lpNumberOfBytesRead, // количество записанных байт LPOVERLAPPED lpOverlapped // NULL ); |
Чтение данных из файла: функция ReadFile (подробное описание функции в книге [1] на стр.55)
BOOL ReadFile( HANDLE hFile, // указатель на имя файла LPVOID lpBuffer, // указатель на буфер для получаемых данных DWORD nNumberOfBytesToRead, // количество запрашиваемых байт LPDWORD lpNumberOfBytesRead, // количество считанных байт LPOVERLAPPED lpOverlapped // NULL ); |
Пример: Программа записи и чтения из файла.
Создание каталога: функция CreateDirectory (подробное описание функции в книге [1] на стр.40)
BOOL CreateDirectory( LPCTSTR lpPathName, // указатель на имя каталога LPSECURITY_ATTRIBUTES lpSecurityAttributes // указатель защиты (NULL) ); |
Удаление каталога: функция RemoveDirectory (подробное описание функции в книге [1] на стр.40)
BOOL RemoveDirectory( LPCTSTR lpPathName, // указатель на имя каталога ); |
Пример: Программа создания и удаления каталога.
Дата добавления: 2014-12-15; просмотров: 32 | Поможем написать вашу работу | Нарушение авторских прав |