Меню
Бесплатно
Главная  /  Образование  /  Детектирование типа файла по содержимому c. Определение типа файла по содержимому

Детектирование типа файла по содержимому c. Определение типа файла по содержимому

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

Для того, чтобы определить тип файла даже при отсутствии расширения, т.е. набора символов (обычно, трех) после точки в конце имени файла, например, "doc", "gif", предлагаем воспользоваться бесплатной программой File Type Verificator (FTV) компании Shedko software.

Загрузка программы

Скачать программу File Type Verificator (FTV) можно с официально сайта разработчиков по ссылке .

Если со скачиванием программы по вышеуказанной ссылке у Вас возникли сложности, предлагаем загрузить программу с бесплатного сервиса "Яндекс.Диск" по этой ссылке . Файл программы соответствует текущей версии (апрель 2011). Администрация очень просит читателя статьи оставить сообщение в комментариях, если файл не доступен. Спасибо.

Установка программы

Запустите загруженный файл программы, откроется окно мастера установки:

Поставьте галочку "Я принимаю условия соглашения ", нажмите "Далее ". Откроется окно выбора каталога установки:

После завершения установки откроется следующее окно:

Если хотите, чтобы программа запустилась сразу, оставьте галочку около надписи "Запустить File Type Verificator ". Нажмите кнопку "Готово ".

Если после перезапуска программы Вы увидите, что она имеет англоязычный интерфейс, зайдите в Главном меню в пункт "Tools " и выберите пункт "Select Language " (рис. 6):

В открывшемся окне (рис. 7) выберите из раскрывающегося списка под надписью "Select preferable language " пункт "Russian.ini ", нажмите "ОК " и перезапустите программу.

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

Русификация File Type Verificator

Для русификации программы File Type Verificator (FTV), необходимо загрузить специальный файл ("Russian.zip ") на этой странице .

Теперь необходимо извлечь файлы из архива. Для этого можно воспользоваться таким архиватором, как, например, WinRar. Также на нашем сайте представлена статья по бесплатной программе Zipeg для Windows. Она позволяет извлечь файлы из архива. Статья доступна по .

Разархивируйте файлы из архива в какую-нибудь временную папку. После этого скопируйте их (там будет 2 файла: "Russian.ini " и "russian.chm ") в папку "langs ". Для этого откройте "Мой компьютер " (или нажмите на клавиатуре клавиши "Win+E "; клавиша "Win " имеет значок системы "Windows " и находится обычно рядом с клавишей "Ctrl "), выберите диск, который вы выбирали при установке программы (если вы устанавливали программу в папку по умолчанию, то, скорее всего, это диск "С:"). Потом зайдите в папку "Program Files ", найдите папку установки программы "FileType Verificator ", и в ней Вы найдете папку "langs ".

Представьте, что вы получаете почту от своих друзей или коллег, а во вложении они отправили вам какой-то документ в виде прикреплённого к письму файла, в котором есть нужная вам информация. Вы сохраняете этот файл на свой компьютер, но видите, что вместо привычных значков какой-либо программы (Word, Excel, PDF и т.д.) никакого значка нет, а Windows считает, что это какой-то файл с неизвестным форматом. Зачастую это происходит из-за того, что файл в процессе прикрепления к письму отправителем (или при сохранении файла на компьютер получателем) теряет своё расширение, и операционная система Windows перестаёт понимать, что за тип файла перед ней, и соответственно не знает, какой программой нужно открывать такой файл. Что такое расширение файла, и как их отображать и скрывать в различных версиях Windows, вы можете прочитать в .

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

Хорошо, если вы точно знаете, какой тип файла перед вами, и можете просто добавить ему нужное расширение, например, doc или xls, чтобы он автоматически открывался с помощью двойного щелчка мышки по нему. В отдельной статье вы можете прочитать о . Но что делать, если перед вами файл, тип которого вы не знаете? Есть как минимум два способа узнать, какой перед вами тип файла, и задать ему правильное расширение.

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

В нашем эксперименте будут участвовать несколько файлов:

  1. Bonnie Tyler — Turn around.mp3 — песня в формате mp3
  2. bonus.mp4 — небольшое видео в формате mp4
  3. KeePass-2.28.exe — установочный файл программы KeePass (об этой замечательной программе я расскажу вам в одной из следующих статей)
  4. math.zip — архив zip
  5. Point Break.avi — небольшое видео формата avi
  6. Tulips.jpg — картинка с тюльпанами
  7. Доклад.ppt — презентация, сделанная в MS PowerPoint 2003
  8. Материалы к совещанию.pptx — презентация, сделанная в MS PowerPoint 2007
  9. Письмо.doc — текстовый файл, сделанный в редакторе MS Word 2003
  10. Приказ.docx — текстовый файл, сделанный в редакторе MS Word 2007
  11. Приложение 4.rar — архив rar
  12. резолюция.pdf — файл в формате pdf
  13. Таблица соответствия.xlsx — файл с данным, сделанный в табличном редакторе MS Excel 2007
  14. Табличные данные.xls — файл с данным, сделанный в табличном редакторе MS Excel 2003

На картинке ниже у всех файлов стоят свои расширения (выделены рамочками с красными краями):

Удаляем все расширения файлов, и после этого пропадают все значки программ, с помощью которых можно открывать эти файлы. В Windows XP это выглядит так:

В Windows 7 это выглядит немного по-другому, но смысл тот же — операционная система не знает, какой программой открывать эти файлы.

Теперь при попытке открыть любой файл Windows предложит нам сначала выбрать программу, которой нужно открывать этот файл:

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

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

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

Первый способ узнать, что за тип файла перед нами — это посмотреть содержимое этих файлов с помощью простых текстовых редакторов, например, Блокнота, а лучше — либо с помощью встроенных программ просмотра различных файловых менеджеров, таких, как Total Commander или Far, либо с помощью бесплатного усовершенствованного текстового редактора Notepad++. Рекомендую вам скачать и установить его, поскольку у него есть множество преимуществ перед обычным блокнотом.

Берём первый файл «Bonnie Tyler — Turn around», в списке программ для открытия выбираем Notepad++ (если не установили его — используйте обычный Блокнот, но лучше всё-таки Notepad++, поскольку при открытии больших файлов Блокнот просто зависает), и видим какие-то кракозябры:

Смущать это не должно, поскольку для определения типа файла достаточно посмотреть первую строчку содержимого файла. Здесь видно, что файл начинается с букв «ID3″.

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

Открываем второй файл «bonus» той же программой Notepad++ и смотрим его содержимое:

Как видим в первой строчке содержимого файла, в ней неоднократно упоминается, что это видеофайл формата mp4 (выделил красным на скриншоте выше). Да и в целом, если вы видите внутри файла текст вроде «ftypmp42 «, то, как правило, это видеофайл формата mp4.

Проделывая ту же самую операцию по просмотру содержимого со всеми остальными файлами, получаем следующую информацию:

  1. При открытии содержимого файла KeePass-2.28 видно, что файл начинается с букв MZ — это признак того, что перед нами исполняемый файл exe.
  2. При открытии содержимого файла math.zip видно, что файл начинается с букв PK — это говорит нам о том, что данный файл представляет собой архив. Учитывая, что архивы Rar имеют другую запись в содержимом файла, скорее всего это архив Zip, но при этом будьте внимательны и обратите внимание на пункт 6 ниже.
  3. При открытии содержимого файла Point Break в первой же строчке видим подсказку, что перед нами видеофайл формата avi.

  1. При открытии содержимого файла Tulips видим два определяющих формат файла слова — в начале строки «яШя» и затем — «Exif». Эти слова определяют графический формат файла, в частности jpg, и в данном случае мы точно уверены, что перед нами файл-картинка.

  1. Касательно файлов MS Office 2003 «Доклад», «Письмо» и «Табличные данные» — все они во внутреннем содержании начинаются с «РП», поэтому определить сразу, какой из них сделан в Word, Excel или PowerPoint, достаточно сложно. Единственное, в чём можно быть точно уверенным — это то, что данные файлы относятся к одному из приложений MS Office версии 2003 и ниже. Поэтому для открытия таких типов файлов можно использовать перебор трёх расширений, начиная с «doc», затем «xls», затем «ppt». Как правило, одно из них подойдёт.
  2. С файлами «Материалы к совещанию», «Приказ», «Таблица соответствия» немного сложнее — поскольку они сделаны в приложениях MS Office 2007, то по сути они представляют собой архивы, и поэтому в начале их содержимого вы увидите те же буквы, что и в архиве Zip — это буквы «PK». Тем не менее, далее в этой же строке можно увидеть строчку .xml, именно она нам подскажет, что перед нами не просто архив, а документ из серии MS Office Так же, как и в предыдущем пункте, можно использовать последовательный перебор трёх расширений «docx», затем «xlsx», затем «pptx». Одно из них должно подойти.
  1. При открытии содержимого файла «Приложение 4″ видим, что он начинается со слова «Rar» — это самое простое указание на то, что перед нами архив формата rar.
  2. При открытии содержимого файла «резолюция» с самого начала видно указание, что это за файл, поскольку он начинается со строчки «%PDF-1.3″. Цифры могут меняться, но тем не менее аббревиатура pdf обычно присутствует, и указывает на формат файла.

Второй способ определения типа файла требует наличия интернет-соединения, а также желательно, чтобы размер файла был небольшим, поскольку мы будем использовать интернет-сервис для определения формата файла.

Нажимаем мышкой на кнопку «выберите файл», указываем наш файл для анализа (я попробую проанализировать один из сложных файлов «Материалы к совещанию», чтобы увидеть, сможет ли этот анализатор справиться и понять, что этот файл был создан в MS PowerPoint 2007 (у него было расширение pptx, и мы его удалили при нашем эксперименте). После выбора файла нажимаем кнопку «Analize» и получаем следующий результат:

Как видим, сервис с 97%-ой вероятностью определил, что это файл PowerPoint с расширением pptx. И поскольку этот файл также является архивом-контейнером, содержащим внутри себя другие файлы, анализатор также указал трёхпроцентную вероятность, что это может быть архив zip.

Попробуем также проверить, сможет ли этот сервис определить тип нашего файла «резолюция», у которого мы стёрли расширение pdf. Загружаем файл на сервис, нажимаем кнопку «Analize» и видим, что сервис отлично справился с поставленной задачей:

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

Можно конечно воспользоваться специальными программами для определения типа файла, например, File Type Verificator, но на мой взгляд, гораздо проще и быстрее будет воспользоваться одним из двух предложенных выше способов.

Итак, уважаемые посетители сайта, сегодня мы с вами разобрали, как можно определить формат (тип) файла, если было утеряно его расширение. Если у вас появятся какие-либо вопросы, прошу задавать их в комментариях к этой статье.

Навигация записи

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

Логически объединенные последовательности нулей и единиц как раз и составляют то, что мы называем файлами. Но ведь мы знаем и то, что типов файлов очень много. Есть текстовые файлы, мультимедийные, архивные, системные, исполняемые и так далее. Каким же образом операционная система определяет как читать или обрабатывать тот или иной файл? Прикладные программы распознают тип файла по его расширению - набору символов следующих после имени файла и отделенных от него точкой.

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

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

Грубо говоря, все файлы состоят из двух частей. Первая часть это заголовок, содержащий различную метаинформацию включая те данные, которые позволяют прикладным программам этот самый файл идентифицировать. Вторая часть это «тело» файла. Отвечающая за определение типа файла часть заголовка файла именуется дескриптором или описанием. Наиболее распространёнными типами дескрипторов являются HEX и ASCII. Первый тип заголовков можно просмотреть только с помощью специальных утилит - шестнадцатеричных редакторов .

Для просмотра дескрипторов второго типа можно обойтись обычным текстовым редактором, тем же Блокнотом или . Однако следует учитывать, что далеко не все последовательности байтов можно перевести в ASCII-код, поэтому для определения формата всё-таки лучше использовать HEX-редакторы. Открытый в HEX-редакторе файл отображается в виде матрицы из последовательности байтов. Каждая ячейка соответствует одному байту. Данные дескриптора содержатся как раз в первых трёх ячейках (реже двух или четырех), расположенных по горизонтали. Представляют они из себя шесть символов в шестнадцатеричном счислении, например 49 44 33 или ff d8 e0 .

Естественно они нуждаются в расшифровке. А расшифровать их можно на специальных сайтах с описаниями форматов. Одним из лучших сайтов, где можно определить формат по HEX-дескриптору является open-file.ru . Есть и другие подобные ресурсы, но они не настолько удобны. На open-file.ru же имеется специальная поисковая форма, куда можно вставить HEX или ASCII дескриптор и пробить его по базе данных. Система быстро найдёт соответствующий формат и предоставит вам его полное описание.

С HEX-редакторами всё более или менее понятно, но как мы сказали для определения ASCII-заголовков также можно использовать редакторы текстовые. Принцип здесь тот же самый, открываем файл Блокнотом или Notepad++, копируем первые символы и вставляем их в поисковое поле того же open-file или другого сайта с поддержкой поиска по заголовкам.

Казалось бы всё очень просто, но есть в деле идентификации форматов и свои сложности. Иногда ASCII-заголовки совпадают с расширением файла (RAR и PDF), но может быть и такое, что заголовок оказывается принадлежащим сразу нескольким форматам. Это можно видеть на примере офисного формата DOCX (PK и 50 4b 03 04). В таких случаях точно определить формат проблематично.

Послал Вам кто-нибудь e-mail с файлом, с которым не знаете что делать? Вы скачали файл и не имеете понятия для чего он предназначен? В чём можно открыть файл с данным расширением? Ответы на эти вопросы найдёте в этой статье.

Со времён MS-DOS для различия отдельных файлов применяются так называемые расширения. Ранее применялись расширения длиной в три знака за точкой, сегодня же это ограничение уже не действует. Некоторым операционным системам, как например Linux, расширения вообще не нужны. Для идентификации файлов в этих системах применяется команда file, где параметром служит имя файла - впоследствии узнаете кое что о его содержании.

И всё же расширения в этих системах могут появляться, это может быть в случае приложения к e-mail´у или файла из Интернета. Задача расширения - различать файлы по их содержанию. На первый взгляд так можно определить, что будет файл содержать. Для примера можно определить, что файл.txt будет содержать текст, .jpg - картинку а.avi конечно же видео. А что например.bz2, .7z, .lha и т.д.. Не знаете? Читайте дальше и узнаете как это определить.

Как определить, какой это файл?

Первая проблема, с которой Вы можете столкнуться, это то, что расширение данного файла не известно Вашей системе и система спросит, в какой программе должен быть файл открыт. Если расширение неизвестно самому пользователю, нужно начать поиск в Интернете. Некоторые используют любимый поисковик как например Google, или используют прямо некоторые из специализированных сайтах. Благодаря им узнают, о каком файле идёт речь и в какую программу нужно искать. Некоторые сайты занимающиеся расширениями:

File extensions (http://www.file-extensions.org/)

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

FileInfo.net (http://www.fileinfo.net/)

Этот сайт предлагает такие же функции как и предыдущий стой разницей, что не показывает и другие возможные расширения для данного формата. В отличие от предыдущего решения здесь найдёте и соответствующие программы для операционной системы Windows, Mac OS a Linux.

Расширения файлов (http://www.pndesign.cz/pripony-souboru.php)

Чешское подобие предыдущих сайтов. К сожалению много информации здесь не найдёте. Всё же основная информация о данном расширении здесь есть.

И всё таки если не получается?

Расширение можно элементарно поменять и поиски по расширению не обязательно приведут к правильной цели. С изменением расширения я столкнулся у одного пользователя, который не мог воспроизвести фильм, потому что его расширение было для установленного проигрывателя неизвестно (.mp4). Тогда изменили расширение на.avi и его любимый проигрыватель фильм воспроизвёл. Это решение всё же не совсем подходящее, поэтому его не рекомендую. В случае если кто то так уже сделал, решением могут быть разные online услуги для идентификации файлов. Между такими online услуги есть например такие:

iConv (http://www.iconv.com/file.htm)

Предлагает интересную online услугу, где достаточно закачать файл. В последствие Вам страничка "скажет", что этот файл содержит. К сожалению информация из этой услуги слишком скромная. Так что её использование только ориентировочное. Использовать можно только в случае, если существенно изменён формат, т.е. файл с расширением.txt на самом деле видео.

Online TrID File Identifier (http://mark0.net/onlinetrid.aspx)

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

А что если нет интернета? TrID

Проект Online TrID File Identifier имеет и offline версию в виде программы, которая управляется из командной строки. Это может быть для одного плюсом, для другого наоборот минусом. И эта программ сможет определить, что на самом деле файл собой представляет, использует не только расширение. Определение содержимого происходит при помощи исследования и сравнения структуры массива данных, поэтому идентификация у небольших файлов может длиться дольше чем у следующей программы.

File

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

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

В этой статье я покажу вам быстрый и более точный способ определения типа файла, который вы можете использовать. Для того, чтобы сделать это, я создал несколько тестовых файлов, PDF, JPEG, MP3, EXE и DLL, просто стер у них расширение. Очевидно, что ваш файл может быть различного типа, но процедура будет такой же, для любого типа файлов. Тестовые файлы выбрал совершенно случайно
Для этой процедуры вам необходимо узнать HEX – код файла. Ну что вы уже напугались и думаете, как все это заумно. Нет, для этого нам нужен текстовый редактор , такой как стандартный Блокнот , или можно скачать (я даже советую это сделать, он намного функциональней, и работает шустрее) Notepad++ .

Открываем файлы без расширения

А теперь просто открываем файлы без расширения в тестовом редакторе, у применяю Notepad++, но методика для всех одинакова.

Первый на очереди PDF тест и видим в первых же строчках информация, о расширении в явном виде.

И видим в JPEG в начале строки, какое не понятное JFIF , в DLL и EXE MZ , а MP3 ID3 . Далее интернет нам в помощь, вбиваем в поисковик фразу, например ID3 формат, или JFIF расширение. И увидим что ID3 – это от англ. Identify an MP3 , некий формат метаданных, но это неважно, это же наверняка mp3 файл. На запрос JFIF получили JPEG File Interchange Format , некая спецификация, MZ – формат исполнительных файлов EXE и DLL . То есть в первых строчках находиться вся нужная нам информации, и мы без труда можем открыть любой файл без расширения

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