Одним из важнейших аспектов любой операционной системы является работа с файлами. В Windows 95/98/NT функции доступа к файлам и дискам значительно расширены по сравнению с MS-DOS за счет использования 32-разрядных чисел и поддержки сразу несколько файловых систем: FAT (file allocation table, таблица размещения файлов), NTFS (файловую систему NT) и CDFS (файловая система CD-ROM).
Основной файловой системой Windows 95/98 является FAT. FAT позволяет присваивать каталогам и файлам имена до 255 символов длиной. Эти имена хранятся на диске в кодировке Unicode, а это значит, что они не нарушаются при копировании в системы использующие другие языки. Еще одна особенность файловой системы FAT в том, что с каждым файлом в ней связаны 3 временные метки: время создания файла, время последнего к нему обращения и время последней модификации.
Windows NT поддерживает не только FAT, но и NTFS, которая совместима с FAT и имеет свои дополнительные особенности. NTFS позволяет восстанавливать данные после сбоя системы, работает с внешними носителями высокой емкости, различает регистр букв в именах файлов. В NTFS добавлены средства защиты файлов от вирусов (введен атрибут файла только для исполнения).
|
|
Поскольку Win32 поддерживает несколько файловых систем, все они должны подчинятся общим правилам. Файловые системы должна организовывать файлы в иерархическое дерево каталогов – так, как это делает FAT. Имена каталогов и файлов в полном имени файла (pathname) отделяются обратной косой чертой (). Кроме правил формирования полного имени, действует и правила именования каталогов и файлов:
· полное имя файла завершается нулевым символом .
· имена файлов и каталогов не должны содержать разделительного символа (), символов с ASCII-кодами от 0 до 31, специальных символов вроде (< .,> .,:, или | /), а также символов, явно запрещенных в какой либо файловой системе .
· имена файлов и каталогов могут включать буквы разного регистра, но при поиске файлов и каталогов регистр букв не учитывается. Если файл с именем ReadMe.Txt существует, то создание нового файла с именем README.TXT уже не допускается .
· точка (.) идентифицирует текущий каталог. Например,. README.TXT означает, что файл README.TXT находится в текущем каталоге .
· две точки (..) идентифицирует родительский каталог. Например,.. README.TXT означает, что файл README.TXT находится в родительском каталоге текущего каталога .
· точка (.), используемая как часть имени файла или каталога, считается разделителем компонентов имени. Например, в файле README.TXT точка отделяет имя файла от его расширения.
Эти основные правила должны соблюдать все файловые системы, поддерживаемые Win32. Допускаются лишь различия, вытекающие из разной интерпретации этих правил и дополнительных возможностей конкретной файловой системы.
Разрабатывая Win32-приложения, необходимо помнить, что пользователь может работать с любой комбинацией FAT, NTFS и CDFS, а также то, что в будущем появятся другие файловые системы. Любая из новых файловых систем будет следовать базовым правилам, и, приложив минимум дополнительных усилий, можно писать программы, корректно работающие независимо от файловой системы.