Как определить тип файла без расширения в Windows?
Иногда я получаю файлы от моих клиентов с неправильным расширением. Например, имя image.jpg
но файл на самом деле является изображением TIFF. Во многих случаях я могу уточнить это, открыв файл в текстовом редакторе, просмотрев первые несколько байтов, а затем определив, какой это тип файла.
Это работает для меня с файлами JPEG, TIFF, GIF и PDF. Однако есть еще много типов файлов.
Можно ли автоматизировать идентификацию правильного типа файла путем анализа содержащихся данных?
5 ответов
Вы можете использовать инструмент TrID, который имеет растущую библиотеку определений типов файлов для идентификации файлов с.
Подстановочные знаки поддерживаются, поэтому в вашем примере вы можете просто поместить все исследуемые изображения в папку, например, C:\verifyimages - тогда вы можете использовать команду:
trid C:\verifyimages\*
Это проверит все файлы в verifyimages
папка.
Существует также версия GUI, TrIDNet:
Доступна документация о том, как вы можете легко интегрировать TrID или TrIDNet в Windows Explorer и Total Commander:
проводник Виндоус
Total Commander
Файл проверяет каждый аргумент в попытке его классифицировать. В этом порядке выполняются три набора тестов: тесты файловой системы, тесты магического числа и языковые тесты. Первый успешный тест приводит к печати типа файла.
Напечатанный тип обычно содержит одно из слов text (файл содержит только печатные символы и несколько общих управляющих символов и, вероятно, безопасен для чтения на терминале ASCII), исполняемый (файл содержит результат компиляции программы в форме понятный какому-либо ядру UNIX или другому), так и данные, означающие что-либо еще (данные обычно являются "двоичными" или не распечатываются). Исключением являются общеизвестные форматы файлов (основные файлы, архивы tar), которые, как известно, содержат двоичные данные.
Я работал во Французской национальной библиотеке, чтобы создать систему цифрового архива, которая содержит не только оцифрованные книги, но и миллионы цифровых артефактов со всевозможными странными типами файлов. Мы использовали JHOVE для распознавания форматов файлов.
JHOVE имеет открытый исходный код, поддерживается JSTOR и библиотекой Гарвардского университета. Это довольно просто в использовании.
Современный подход, который может понравиться, - это использовать Git для Windows. Бежать
git-bash.exe
и запустите команду
file path\to\file
. Пример вывода может быть таким:
TestFile.ico: MS Windows icon resource - 1 icon, 128x128, 32 bits/pixel
В качестве альтернативы используйте команду
file -i path\to\file
, что может дать:
TestFile.ico: image/vnd.microsoft.icon; charset=binary
Вы можете проверить тип файла с любого компьютера, включая Windows на
Я использую библиотеки Oracle OutsideIn в своих программах. Не бесплатно, но они работают хорошо, особенно для изображений. Рынок говорит, что поддерживает более 500 типов файлов.