Реализация функций контроля и управления на базе Win32 API: Методические указания по выполнению лабораторного практикума, страница 2

§  имена файлов и каталогов не должны содержать разделительного символа (\), символов с ASCII-кодами от 0 до 31, специальных символов вроде (<,>,:," или | /), а также символов, явно запрещенных в какой либо файловой системе;

§  имена файлов и каталогов могут включать буквы разного регистра, но при поиске файлов и каталогов регистр букв не учитывается. Если файл с именем ReadMe.Txt существует, то создание нового файла с именем README.TXT уже не допускается;

§  точка (.) идентифицирует текущий каталог. Например, .\ README.TXT означает, что файл README.TXT находится в текущем каталоге;

§  две точки (..) идентифицирует родительский каталог. Например, ..\ README.TXT означает, что файл README.TXT находится в родительском каталоге текущего каталога;

§  точка (.), используемая как часть имени файла или каталога, считается разделителем компонентов имени. Например, в файле README.TXT точка отделяет имя файла от его расширения.

Эти основные правила должны соблюдать все файловые системы, поддерживаемые Win32. Допускаются лишь различия, вытекающие из разной интерпретации этих правил и дополнительных возможностей конкретной файловой системы.

Разрабатывая Win32-приложения, необходимо помнить, что пользователь может работать с любой комбинацией FAT, NTFS и CDFS, а также то, что в будущем появятся другие файловые системы. Любая из новых файловых систем будет следовать базовым правилам, и, приложив минимум дополнительных усилий, можно писать программы, корректно работающие независимо от файловой системы.

1.2 Функции Win32 API получения информации о файлах и дисках

Все функции Win32 API используемые в файловой системе условно разделяются на две группы: информационные и управляющие.

Информационные функции используются в пользовательских программах в тех случаях, когда в алгоритме выполнения программы требуется информация о логической структуре дисков и о параметрах файлов.

Список применяемых  в файловой системе информационных функций представлен ниже.

Функции получения информации о диске:

§  GetLogicalDrives – позволяет получить информацию о наличии логического диска в системе;

§  GetLogicalDriveStrings – позволяет получить массив символьных строк, представляющих собой имена всех логических дисков в системе;

§  GetDriveType – позволяет получить тип логического диска (отсутствует в системе, гибкий, жесткий, компакт-диск и т. д.);

§  GetVolumeInformation – позволяет получить информацию о файловой системе выбранного логического диска;

§  GetDiskFreeSpaceExA – позволяет получить информацию об объеме диска и количестве хранимой информации.

Функции получения информации о файлах и каталогах:

§  GetCurrentDirectory – позволяет получить полный путь к текущей директории;

§  GetWindowsDirectory – позволяет получить путь к основному каталогу Windows;

§  GetSystemDirectory – позволяет получить имя системного каталога;

§  GetTempPath – позволяет узнать полный путь к каталогу, где операционная система хранит временные файлы;

§  GetFullPathName – позволяет получить полный путь к файлу и его имя;

§  GetFileAttributes – позволяет получить информацию об атрибутах файла;

§  GetFileSize – позволяет получить размер файла;

§  GetFileTime – позволяет получить значения временнных меток  файла;

§  CompareFileTime – позволяет узнать, какой файл более старый;

§  FindFistFile – производит поиск первого файла, соответствующего маске поиска;

§  FindNextFile – продолжает поиск файлов, начатых функцией FindFistFile.

Информационные функции файловой системы разделяются на дисковые и файловые функции.

Дисковые функции позволяют получить следующую информацию:

§  наличие диска в системе;

§  тип диска (жесткий, гибкий, сетевой и т.п.);

§  серийный номер и метка диска;

§  название файловой системы;

§  максимальная длина имени файла в символах, представляемой файловой системой;