Формат файла
Материал из Википедии — свободной энциклопедии
Термин формат файла (или тип файла) используется для описания структуры данных, записанных в компьютерном файле.
Так как файл представляет собой просто последовательность битов (т. е. нулей и единиц), компьютерные программы, сохраняющие данные в файле, должны как-то преобразовывать обрабатываемую ими информацию в последовательность битов и наоборот. Алгоритм этого преобразования, а также соглашения о том, как различные фрагменты информации, после преобразования, располагаются внутри файла составляют то, что входит в понятие «формат файла».
Различные форматы файлов могут различаться степенью детализации, при этом один и тот же файл может быть отнесён одновременно к нескольким форматам. Например, текстовый формат накладывает только самые общие ограничения на структуру данных. Формат HTML устанавливает более подробные правила внутреннего устройства файла, но при этом любой HTML-файл является, в то же время, текстовым файлом.
Содержание |
[править] Спецификации
Для многих форматов файлов существуют опубликованные спецификации, в которых подробно описана структура файлов данного формата, то, как программы должны кодировать данные для записи в этот формат и как декодировать их при чтении. Большинство таких спецификаций свободно доступны, некоторые распространяются за плату.
Иногда компании могут считать определённые форматы файлов своим коммерческим секретом и не публиковать их. Хорошо известный пример — форматы файлов пакета Microsoft Office. В некоторых случаях, компания, выпустившая приложение просто не считает нужным тратить время на написание подробной спецификации.
Если спецификация формата недоступна, то для обеспечения совместимости программы с данным форматом приходится заниматься обратной разработкой. В большинстве или во всех странах форматы файлов не защищены законами об авторских правах. Однако, в некоторых странах, патентами могут быть защищены алгоритмы, используемые для кодирования данных в какой-либо формат. Например, в широко распространённом формате GIF используется патентованный алгоритм, что привело к разработке альтернативного формата PNG.
[править] Определение типа файла
Для того, чтобы правильно работать с файлами, программы должны иметь возможность определять их тип. По историческим причинам, в разных операционных системах используются разные подходы для решения этой задачи.
[править] Расширение имени файла
Некоторые операционные системы, например, CP/M, DOS, и Windows используют для определения типа файла часть его имени, т. н. «расширение имени файла». В старых операционных системах это были три символа, отделённые от имени файла точкой, в более новых системах, длина расширения практически не ограничена. Например, HTML-файлам может соответствовать расширение «.htm» или «.html».
Пользователь может случайно изменить расширение файла при его переименовании и сделать его недоступным или вообще «потерять». Поэтому новые операционные системы, по-умолчанию, скрывают расширения. В то же время, опытный пользователь может использовать возможность изменить назначенный файлу тип, просто сменив расширение, для того, чтобы открыть его в другой программе. Это может быть полезно, если в программе не предусмотрено открытие файлов с каким-то расширением, а пользователь знает, что их формат подходит для обработки в данной программе.
[править] Магические числа
Другой способ, широко используемый в UNIX-подобных операционных системах, заключается в том, чтобы сохранить в самом файле некое «магическое число», по которому может быть опознан формат файла. Первоначально этот термин использовался для специального набора 2-байтовых идентификаторов, сохраняемых в начале файла, однако, любая последовательность символов, характерная для данного формата, может быть использована как «магическое число».
[править] Метаданные
Некоторые файловые системы позволяют сохранять дополнительные атрибуты для каждого файла, т. н. «метаданные». Эти метаданные можно использовать для хранения информации о типе файла. Такой подход используется в компьютерах Apple Macintosh. Метаданные поддерживаются такими современными файловыми системами как HPFS, NTFS, ext2, ext3 и другими. Недостатком этого метода является плохая переносимость — при копировании файлов между файловыми системами разных типов метаданные могут быть потеряны.
[править] MIME
Типы данных, определённые стандартом MIME широко используются в различных сетевых протоколах, однако в файловых системах они пока применяются редко.
[править] См. также
[править] Ссылки
- Форматы данных @ dmoz.org[[Категория:
[править] Текст заголовка
]]