Иногда я получаю от клиентов файлы с неправильным расширением. Например, имя — image.jpg
, но на самом деле файл является изображением TIFF. Во многих случаях я могу прояснить это, открыв файл в текстовом редакторе, просмотрев первые несколько байтов, а затем определив, какой это тип файла.
У меня это работает с JPEG, TIFF, GIF и файлы PDF. Однако существует гораздо больше типов файлов.
Можно ли автоматизировать идентификацию правильного типа файла путем анализа содержащихся данных?
Вы можете использовать инструмент TrID, который имеет растущую библиотеку определений типов файлов для идентификации файлов с помощью.
Подстановочные знаки поддерживаются, поэтому в вашем примере вы можете просто поместить все изображения для проверки в папку, например C: verifyimages — тогда вы можете использовать команду:
trid C: verifyimages *
Это проверит все файлы в папке verifyimages
.
Также доступна версия с графическим интерфейсом, TrIDNet:
Имеется документация о том, как вы можете легко интегрировать TrID или TrIDNet в Windows Explorer и Total Commander:
Проводник Windows
- Интегрировать TrID
- Интегрировать TrIDNet
Total Commander
- Интегрировать TrID
- Интегрировать TrIDNet
файл
Файл проверяет каждый аргумент, пытаясь его классифицировать. Есть три набора тестов, выполняемых в указанном порядке: тесты файловой системы, тесты магических чисел и языковые тесты. Успешный первый тест приводит к тому, что тип файла печатается.
Напечатанный тип обычно содержит одно из слов текст (файл содержит только печатные символы и несколько общих управляющих символов и, вероятно, его безопасно читать на терминале ASCII), исполняемый файл (файл содержит результат компиляции программы в понятной форме к какому-то ядру UNIX или другому), или data , означающее что-либо еще (данные обычно являются «двоичными» или непечатаемыми). Исключение составляют хорошо известные форматы файлов (файлы ядра, архивы tar), которые, как известно, содержат двоичные данные.

-
1
file
является стандартным, но в старых системах (особенно не Linux) не очень хорошо осведомлен. Для Ubuntu и т. Д. должен быть вполне приличным и даже устанавливаться как стандарт. — Торбьёрн Равн Андерсен, 24 апр. 2011 г., 13:28 -
2Я очень сомневаюсь, что
file
хорошо разбирается в файлах, созданных приложениями Windows. — Робин Грин, 24 апреля 2011 г. в 20:23 -
6@Robin: Можете протестировать это. — Игнасио Васкес-Абрамс, 24 апр. 2011 г., 20:27
-
12@Robin: Я очень сомневаюсь, что вы вообще использовали
file
, но все же вы почти решили, что это за эффективность. — tzot 24 апр. ’11 в 23:24
file.exe
старше десяти лет, а общий статус gnuwin32
не поддерживается
с 2013 года согласно Википедии. Современный подход заключается в использовании git-for-win: git-scm.com/download/win, который объединяет утилиты Unix (последние версии). После установки у вас должен быть % ProgramFile% Git usr bin
в PATH
с file.exe
в нем. . Для Windows 10 вы также можете включить Windows Sybsystem для Linux (WSL), установить дистрибутив по вашему выбору (ubuntu, fedora, alpine, gentoo и т. Д.), Ввести его и выполнить file/mnt/c/your /path/in/windows/filename.extension
(часть /c/
представляет диск C:). — вулкан ворон 25 мая ’19 в 10:57 file
Файл проверяет каждый аргумент, пытаясь его классифицировать. Есть три набора тестов, выполняемых в указанном порядке: тесты файловой системы, тесты магических чисел и языковые тесты. Успешный первый тест приводит к тому, что тип файла печатается.
Напечатанный тип обычно содержит одно из слов текст (файл содержит только печатные символы и несколько общих управляющих символов и, вероятно, его безопасно читать на терминале ASCII), исполняемый файл (файл содержит результат компиляции программы в понятной форме к какому-то ядру UNIX или другому), или data , означающее что-либо еще (данные обычно являются «двоичными» или непечатаемыми). Исключение составляют известные форматы файлов (файлы ядра, архивы tar), которые, как известно, содержат двоичные данные..
Раньше я работать на Национальную библиотеку Франции, чтобы создать систему цифрового архива, которая будет содержать не только оцифрованные книги, но и миллионы цифровых артефактов со всеми видами странных типов файлов. Мы использовали JHOVE для распознавания форматов файлов.
JHOVE имеет открытый исходный код, он поддерживается JSTOR и библиотекой Гарвардского университета. Его довольно просто использовать.

-
круто! но распознает ли он проприетарные форматы, такие как TrID? в любом случае, у меня есть несколько применений для идентификации субформатов/вариантов непатентованных форматов (или, если быть точным, проприетарных «расширений» стандартизованных форматов), так что это может пригодиться. спасибо за предупреждение! — pepoluan 24 апр. ’11 в 14:00
Раньше я работал во Французской национальной библиотеке над созданием системы цифрового архива, содержащей не только оцифрованные книги, но и миллионы цифровых артефактов. со всеми видами странных типов файлов. Мы использовали JHOVE для распознавания форматов файлов.
JHOVE — это открытый исходный код, он поддерживается JSTOR и библиотекой Гарвардского университета. Его довольно просто использовать.
Современный подход, который может понравиться, — это использовать Git для Windows. Запустите git-bash.exe
и выполните команду путь к файлу to file
. Пример вывода может быть следующим:
TestFile.ico: ресурс значка MS Windows - 1 значок, 128x128, 32 бит/пиксель
В качестве альтернативы используйте команду file -i path to file
, которая может дать:
TestFile.ico: image/vnd. microsoft.icon; charset = binary

Современный подход, который может понравиться, — это использовать Git для Windows. Запустите git-bash. exe
и выполните команду путь к файлу to file
. Пример вывода может быть следующим:
TestFile.ico: ресурс значка MS Windows - 1 значок, 128x128, 32 бит/пиксель
В качестве альтернативы используйте команду file -i path to file
, которая может дать:
TestFile.ico: image/vnd. microsoft.icon; charset = binary
Вы можете проверить тип файла с любого компьютера, включая Windows, по адресу
http://www.checkfiletype.com
-
2Добро пожаловать в суперпользователь! Прочтите, как рекомендовать программное обеспечение в ответах, особенно те части, которые выделены жирным шрифтом ; затем отредактируйте свой ответ, чтобы следовать приведенным там рекомендациям. Это применимо, даже если вы рекомендуете веб-сайт! Cheers — bertieb 4 июн ’18 в 11:33
Вы можете проверить тип файла с любого компьютера, включая Windows, в
http://www.checkfiletype .com
Я использую библиотеки Oracle OutsideIn в моих программах. Не бесплатно, но они хорошо работают, особенно для изображений. Говорят, что он поддерживает более 500 типов файлов.
Я использую библиотеки Oracle OutsideIn в своих программах. Не бесплатно, но они хорошо работают, особенно для изображений. Говорят, что он поддерживает более 500 типов файлов.