Как я могу определить тип файла без расширения в Windows?

Иногда я получаю от клиентов файлы с неправильным расширением. Например, имя — 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

55

файл

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

Напечатанный тип обычно содержит одно из слов текст (файл содержит только печатные символы и несколько общих управляющих символов и, вероятно, его безопасно читать на терминале ASCII), исполняемый файл (файл содержит результат компиляции программы в понятной форме к какому-то ядру UNIX или другому), или data , означающее что-либо еще (данные обычно являются «двоичными» или непечатаемыми). Исключение составляют хорошо известные форматы файлов (файлы ядра, архивы tar), которые, как известно, содержат двоичные данные.

Поделиться
Улучшить этот ответ
отредактировано 24 октября 2014 г. в 14:38
G-Man Says ‘Reinstate Monica’
6,9621111 золотых знаков3131 серебряный знак7373 бронзовых знака
ответил 24 апр. ’11 в 07:38
  • 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
  • 2
    @Gqqnbig, эта версия 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
  • | показать 4 дополнительных комментария

    file

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

    Напечатанный тип обычно содержит одно из слов текст (файл содержит только печатные символы и несколько общих управляющих символов и, вероятно, его безопасно читать на терминале ASCII), исполняемый файл (файл содержит результат компиляции программы в понятной форме к какому-то ядру UNIX или другому), или data , означающее что-либо еще (данные обычно являются «двоичными» или непечатаемыми). Исключение составляют известные форматы файлов (файлы ядра, архивы tar), которые, как известно, содержат двоичные данные..


    15

    Раньше я работать на Национальную библиотеку Франции, чтобы создать систему цифрового архива, которая будет содержать не только оцифрованные книги, но и миллионы цифровых артефактов со всеми видами странных типов файлов. Мы использовали JHOVE для распознавания форматов файлов.

    JHOVE имеет открытый исходный код, он поддерживается JSTOR и библиотекой Гарвардского университета. Его довольно просто использовать.

    Поделиться
    Улучшите этот ответ
    отредактировал 20 июля ’20 в 0:21
    ответил 24 апр. ’11 в 13:16
    • круто! но распознает ли он проприетарные форматы, такие как TrID? в любом случае, у меня есть несколько применений для идентификации субформатов/вариантов непатентованных форматов (или, если быть точным, проприетарных «расширений» стандартизованных форматов), так что это может пригодиться. спасибо за предупреждение! — pepoluan 24 апр. ’11 в 14:00
    добавить комментарий |

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

    JHOVE — это открытый исходный код, он поддерживается JSTOR и библиотекой Гарвардского университета. Его довольно просто использовать.


    4

    Современный подход, который может понравиться, — это использовать 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  

    Поделиться
    Улучшите этот ответ
    ответил 19 июля ’20 в 20:31
    добавить комментарий |

    Современный подход, который может понравиться, — это использовать 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  

    2

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

    http://www.checkfiletype.com

    Поделиться
    Улучшить этот ответ
    ответил 4 июня ’18 в 11:24
    • 2
      Добро пожаловать в суперпользователь! Прочтите, как рекомендовать программное обеспечение в ответах, особенно те части, которые выделены жирным шрифтом ; затем отредактируйте свой ответ, чтобы следовать приведенным там рекомендациям. Это применимо, даже если вы рекомендуете веб-сайт! Cheers — bertieb 4 июн ’18 в 11:33
    добавить комментарий |

    Вы можете проверить тип файла с любого компьютера, включая Windows, в

    http://www.checkfiletype .com


    2

    Я использую библиотеки Oracle OutsideIn в моих программах. Не бесплатно, но они хорошо работают, особенно для изображений. Говорят, что он поддерживает более 500 типов файлов.

    Поделиться
    Улучшить этот ответ
    отредактировано 20 сентября ’20 в 4:24
    ответил 24 апр. ’11 в 11:30
    добавить комментарий |

    Я использую библиотеки Oracle OutsideIn в своих программах. Не бесплатно, но они хорошо работают, особенно для изображений. Говорят, что он поддерживает более 500 типов файлов.

    Оцените статью
    Botgadget.ru
    Добавить комментарий