В большинстве случаев помогает расширение. Но иногда, расширение лжет. Как вариант, на расширение претендует куча разных форматов, причем еще далеко не факт, что среди них есть верный вариант. Или даже у файла может не быть расширения ВООБЩЕ.
Короче, нужно рассмотреть под микроскопом содержание файла. Ситуация становится еще сложней, если перед нами файл в бинарном формате. Что делать в такой ситуации?
1)Нужна программа, которая бы автоматически анализировала бы файл, и говорила, что это может быть за тип файла. Например, «вот это HA-архив, а вот это ZIP-архив, просто он с другим расширением. Вот это специальный видеоформат для игрового видео. И т.д.» Насколько мне известно, линуксовская комманда «file» как раз по этой части. Правда мне кажется, что она не распознает достаточно много файлов. По крайней мере на тех файлах, что я ей скормил, она потерпела неудачу. Может быть кто-нибудь посоветует более мощную программу? Или если это возможно, как-то «усилить» «file».
2)Еще как вариант, самому вооружиться HEX-просмоторщиком и внимательно просматривать файл. Особенно первые байты. Но тут уже крайне желателен какой-нибудь источник информации(книга, сайт), который бы помог во всем разобраться, давал бы советы, как все это делать(например, по HEX-коду первых байтов можно было бы определить формат файла. С помощью сайта/книги-справочника, ибо в голове такую информацию не удержешь ). Такие книги/сайты существуют? Если да, может быть кто-нибудь даст ссылочку? Можно на английском
P.S. Крайне желательно, чтобы программа(или справочник) могла опозновать даже редкие и старые типы файлов