Я иногда получаю файлы от своих клиентов, которые имеют неправильное расширение файла. Например, имя image.jpg
но файл является на самом деле изображением в формате TIFF. Во многих случаях я могу разъяснить его путем открытия файла в текстовом редакторе, рассмотрения первых нескольких байтов, затем выведения, какой тип файла это.
Это работает на меня с JPEG, TIFF, GIF и файлами PDF. Однако там существует намного больше типов файлов.
Действительно ли возможно автоматизировать идентификацию корректного типа файла путем анализа содержания данных?
Можно использовать инструмент TrID, который имеет растущую библиотеку определений типа файла для идентификации файлов с.
Подстановочные знаки поддерживаются, таким образом, в Вашем примере Вы могли просто поместить все изображения, которые будут исследованы в папке, например, C:\verifyimages - затем можно использовать команду:
trid C:\verifyimages\*
Это исследует все файлы в verifyimages
папка.
Существует также доступная версия GUI, TrIDNet:
Существует документация, доступная о том, как Вы можете, можно легко интегрировать TrID или TrIDNet в Windows Explorer и Общего Командующего:
Windows Explorer
Общий командующий
Файл тестирует каждый аргумент в попытке классифицировать его. Существует три набора тестов, выполненных в этом порядке: тесты файловой системы, тесты магического числа и тесты языка. Первый тест, который успешно выполняется, заставляет тип файла быть распечатанным.
Распечатанный тип будет обычно содержать один из текста слов (файл содержит только печатающие символы и несколько символов общего контроля и вероятно безопасен читать на терминале ASCII), исполняемый файл (файл содержит результат компиляции программы в форме, понятной к некоторому ядру UNIX, или другой), или данные, означающие что-либо еще (данные являются обычно “двоичными” или непечатаемыми). Исключениями являются известные форматы файлов (базовые файлы, архивы tar), которые, как известно, содержат двоичные данные.
Я раньше работал на французскую Национальную библиотеку, создавал систему цифрового архива, которая содержит не только оцифрованные книги, но также и миллионы цифровых артефактов со всеми видами странных типов файлов. Мы использовали JHOVE для распознавания форматов файлов.
JHOVE является открытым исходным кодом, он сохраняется JSTOR и Библиотекой Гарвардского университета. Это скорее просто в использовании.
Я пользуюсь библиотеками OutsideIn Oracle в своих программах. Не свободный, но они работают хорошо, специально для изображений. Рынок - говорит, говорит, что он поддерживает более чем 500 типов файлов.