Кафедра ЮНЕСКО по Новым информационным технологиям
СИСТЕМНОЕ И ПРИКЛАДНОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ. ЛАБОРАТОРНАЯ РАБОТА №1 Функции Win32 API для работы с файлами
Лабораторный практикум
Математический факультет
Специальность 010501 – Прикладная математика
Кемерово, 2011
Цель работы:
Создать приложение, в котором работа с файлами и каталогами организована через системные вызовы (функции Win32 API).
Методические указания
Лабораторная работа должна быть реализована в системе программирования Microsoft Visual Studio (C++).
Теоретический материал
Основные функции Win32 API используемые для работы с файлами и каталогами:
CreateFile – создание или открытие файла
DeleteFile – удаление файла
CloseHandle – закрытие файла
ReadFile – чтение из файла
WriteFile – запись в файл
LockFile – блокировка файла
UnlockFile – разблокировка файла
FindFirstFile – поиск первого файла по заданному имени или маске
FindNextFile – поиск каждого последующего файла по заданной маске
FindClose – завершение поиска
SetFilePointer – установка указателя в файле
CreateDirectory – создание каталога
RemoveDirectory – удаление пустого каталога
Примечание:
удаление каталога, поскольку функция RemoveDirectory удаляет лишь пустые каталоги. Реализовать функцию удаления любых каталогов с использованием рекурсии или стеков на основе функций RemoveDirectory, FindFirstFile, FindNextFile, FindClose и DeleteFile;
При создании проекта необходимо использовать библиотеку kernel32.lib;
в исходном файле подключать заголовочные файлы: (include “windows.h”, “winbase.h”).
Создание файла: функция CreateFile(подробное описание функции в книге [1] на стр.47)
HANDLE CreateFile(
LPCTSTR lpFileName, // pointer to name of the file
wcscpy_s(wcDirName,wcCurDirName); // Копирование одной строки в другую
wcscat_s(wcDirName,wcNewDirName); // Добавление второй строки к первой Пример: преобразование типов wchar_t wcDirName[50]; // Переменная - имя директории
wchar_t *lpBuffer; // Указатель на wcDirName
LPSECURITY_ATTRIBUTES lpSecurityAttributes; lpSecurityAttributes=NULL; lpBuffer=wcDirName; // Задание указателя на имя директории
LPCTSTR lpDirName=(LPCTSTR) lpBuffer; // Преобразование к типу LPCTSTR
CreateDirectory(lpDirName,lpSecurityAttributes);
Порядок выполнения работы
Изучить предлагаемый теоретический материал.
Создать программу, реализующую функции Win32 API работы с файлами и каталогами (согласно варианту).
Требования к приложению:
Для работы с приложение должно быть создано меню, содержащее следующие пункты:
Функция №1;
Функция №2;
Выход.
При выборе каждого пункта программа запрашивает путь к создаваемому объекту (файлу или каталогу) и его имя. Варианты задания:
1. Программа выполняет функции создания файлов и копирования данных из одного файла в другой.
2. Программа выполняет функции удаления файлов и пустых каталогов.
3. Программа выполняет функции создания файлов и каталогов.
4. Программа выполняет функции создания и удаления файлов.
5. Программа выполняет функции создания и удаления каталогов.
6. Программа выполняет функции поиска файлов и каталогов, по заданной маске.
7. Программа выполняет вывод на экран содержимого текстового файла.
8. Программа выполняет функцию копирования данных из одного файла в другой.
9. Программа выполняет функцию удаления непустого каталога.
10. Программа выполняет вывод на экран списка всех файлов заданного каталога.
Литература:
Румянцев П.В. Работа с файлами в Win32 API.
Щупак Ю. А. Win32 API. Эффективная разработка приложений. – СПб.: Питер, 2007. — 572 с.