Как известно, файл - это единица компьютерной информации. Строго говоря, единицей компьютерной информации является байт или даже бит, поэтому уточним: файл - это некая совокупность информации, представляющая собой отдельную единицу в вашей операционной системе. Как очень образно выразился Александр Левин, файл - это "единица компьютерного народонаселения".

В подавляющем большинстве случаев файл хранит в себе какой-то определенный тип данных - текст, графическую информацию, базу данных, программный код. Однако бывают и комбинированные типы файлов, включающие, к примеру, одновременно текст и графические иллюстрации. Примером такого типа файла может являться документ текстового редактора Word. А, скажем, документ программы вёрстки (например PageMaker или Quark XPress) помимо текста и картинок может нести в себе еще и кучу служебной информации, представляющей собой указания для правильной печати этого документа.

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

Поэтому еще на самой заре компьютерной эры и была придумана такая штука, как расширение имени файла. Расширение - от слова "расширенное имя", то есть не просто имя, а еще и с неким дополнением.

Итак, каждый файл имеет свое наименование. Оно состоит из имени файла и его расширения, разделенные между собой знаком точки. Собственно имя - это лишь название файла, а расширение - это некий идентификатор, определяющий его тип.

Имя файла чаще всего может быть выбрано самим пользователем, или программистом, создающим программу. До прихода Windows95 длина имени файла ограничивалась всего восемью символами и можно было использовать только латинские буквы. Сейчас это ограничение снято, длина имени может быть уже до 256 символов, и можно использовать кириллицу (ограничение на кириллицу пока осталось только в интернете).

Расширение же (его еще иногда называют форматом), наоборот, жестко привязано к типу файла и изменять его категорически противопоказано. Лет эдак десять или даже больше назад на расширение тоже распространялось строгое правило - оно должно было состоять только из трех символов (компьютерные старожилы помнят так называемую формулу имени файла - 8+3). Теперь и это ограничение снято: расширение может состоять и из одного символа, например h, и из достаточно большого количества символов, к примеру backup, manifest, properties, original...

Однако большинство расширений все-таки состоят из трех знаков, ибо были приняты они еще в те приснопамятные времена. Более того, разработчики программ по-прежнему стараются использовать трёхбуквенные идентификаторы. Как следствие, возникают различные нестыковки – одни и те же расширения могут использовать совершенно разные программы. И если при открытии файла Вы получили что-нибудь вроде: "Not supported file", скорее всего это именно эта ситуация - система зарегистрировала данный тип файла, ассоциировав его не с "родным" приложением. Дополнительная информация

(информация позаимстована из Википедии)

Термин формат файла (или тип файла) используется для описания структуры данных, записанных в компьютерном файле.

Так как файл представляет собой просто последовательность битов (то есть нулей и единиц), компьютерные программы, сохраняющие данные в файле, должны как-то преобразовывать обрабатываемую ими информацию в последовательность битов и наоборот. Алгоритм этого преобразования, а также соглашения о том, как различные фрагменты информации после преобразования располагаются внутри файла, и составляют его "формат".

Различные форматы файлов могут различаться степенью детализации, один формат может быть "надстройкой" над другим или использовать элементы других форматов. Например, текстовый формат накладывает только самые общие ограничения на структуру данных. Формат HTML устанавливает дополнительные правила на внутреннее устройство файла, но при этом любой HTML-файл является в то же время текстовым файлом.

Спецификации

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

Иногда компании могут считать определённые форматы файлов своим коммерческим секретом и не публиковать их. Хорошо известный пример — форматы файлов пакета Microsoft Office. В некоторых случаях компания, выпустившая приложение, просто не считает нужным тратить время на написание подробной спецификации.

Если спецификация формата недоступна, то для обеспечения совместимости программы с данным форматом приходится заниматься обратной разработкой. В большинстве или во всех странах форматы файлов не защищены законами об авторских правах. Однако, в некоторых странах, патентами могут быть защищены алгоритмы, используемые для кодирования данных в какой-либо формат. Например, в широко распространённом формате GIF используется патентованный алгоритм, что привело к разработке альтернативного формата PNG.

Определение типа файла

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

Расширение имени файла

Некоторые операционные системы, например, CP/M, DOS, и Microsoft Windows используют для определения типа файла часть его имени, т. н. «расширение имени файла». В старых операционных системах это были три символа, отделённые от имени файла точкой (в файловых системах семейства FAT имя и расширение хранились отдельно, точка добавлялась уже на уровне ОС); в более новых системах расширение может являться просто частью имени, и тогда его длина ограничена только неиспользованной длиной имени (которая может составлять, например, 255 символов). Например, HTML-файлам может соответствовать расширение «.htm» или «.html».

Пользователь может свободно изменить расширение файла. Поскольку многие оболочки пользователя используют расширение, чтобы определить программу, с помощью которой нужно открыть файл, это может сделать файл недоступным для работы или вообще потеряеть его, если пользователь забудет исходное расширение. Поэтому проводник Windows умолчанию скрывает расширения. В то же время, опытный пользователь может использовать возможность изменить назначенный файлу тип, просто сменив расширение, чтобы открыть его в другой программе, не указывая её напрямую. Это может быть полезно, если в программе не предусмотрено открытие файлов с каким-то расширением, а пользователь знает точно, что их формат подходит для обработки в данной программе.

Магические числа

Другой способ, широко используемый в UNIX-подобных операционных системах, заключается в том, чтобы сохранить в самом файле некое «магическое число» — последовательность символов, по которой может быть опознан формат файла. Первоначально этот термин использовался для специального набора 2-байтовых идентификаторов, сохраняемых в начале файла (эта практика перекочевала и в другие ОС), однако, любая последовательность символов, характерная для данного формата, может быть использована как «магическое число». В скриптах для этого используется 1-я строка: в ней можно в виде комментария указать соответствующий скрипту интерпретатор.

Метаданные

Некоторые файловые системы позволяют сохранять дополнительные атрибуты для каждого файла, т. н. «метаданные». Эти метаданные можно использовать для хранения информации о типе файла. Такой подход используется в компьютерах Apple Macintosh. Метаданные поддерживаются такими современными файловыми системами как HPFS, NTFS, ext2, ext3 и другими. Недостатком этого метода является плохая переносимость — при копировании файлов между файловыми системами разных типов метаданные могут быть потеряны. Классификация форматов

В компьютерном мире существует значительное количество типов файлов и еще гораздо более значительное количество расширений. Конечно, запомнить их все нереально, да и вряд ли есть такая необходимость. Собственно, для этого нами и разрабатывается программа Know Extension Pro, назначение которой - помочь вам в любую минуту узнать интересующую информацию о типе файла.

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

Так, например, файл процессора Word можно отнести и к текстовым файлам, и к документам. Файл графического редактора CorelDRAW с одной стороны вроде бы графический файл, но с другой стороны это не растровая, а векторная графика, и потому это скорее некий командно-математический файл. То же самое можно сказать о звуковом формате midi - по слуховому восприятию это вроде бы звуковой формат, но по содержанию это исключительно командный файл, дающий указания синтезатору, когда, что и как играть.

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


  • Изображение и звук
  • - 3D
  • - Фонограммы (аудиозаписи)
  • - Синтезируемые фонограммы
  • - Растровые изображения
  • - Анимация и видео
  • Документы
  • - Обработка текстов
  • - Языки описания страниц
  • - Электронные книги
  • - Языки разметки
  • - Электронные таблицы
  • Исходный код для языков программирования
  • Объектный код
  • Электронные таблицы
  • Форматы архивов
  • Форматы обмена
  • Инсталяционные форматы
  • Источник: http://knowext.mmbuilder.ru