Есть ли Java-библиотека, эквивалентная файловой команде в Unix - PullRequest
15 голосов
/ 28 апреля 2010

Существует ли библиотека java, похожая на команду unix file?

т.е.:

$ file somepicture.png
somepicture.png PNG image, 805 x 292, 8-bit/color RGB, non-interlaced

Файловая команда - такой хороший инструмент. Мне нужно что-то, что может сказать мне, действительно ли файл такой, каким я хочу его видеть. (т.е. изображение, документ и т. д.)

Я знаю, что могу запустить команду file, но я ищу библиотеку Java, а не саму команду unix.

Ответы [ 7 ]

16 голосов
/ 28 апреля 2010

Быстрый поиск в Google (по общему признанию, неочевидный) "Обнаружение волшебного файла Java" вызывает довольно симпатичную статью, "Получить MIME-тип из файла" который предлагает вам использовать одно из следующего:

7 голосов
/ 05 мая 2011

Начиная с Java 1.7, вы можете использовать Files.probeContentType () для проверки файла. Из коробки он использует механизм на платформе, чтобы угадать тип контента, или вы можете подключить свой собственный детектор, если хотите.

3 голосов
/ 28 апреля 2010

Вы можете посмотреть jmimemagic ( учебник ). Мы использовали его некоторое время для проверки загруженных изображений. Пока проблем нет.

2 голосов
/ 28 апреля 2010

Я не уверен, что это именно то, что вы ищете, но следующая ссылка может вам помочь:

http://www.rgagnon.com/javadetails/java-0487.html

1 голос
/ 18 мая 2010

Самая близкая вещь в JDK - <a href="http://bit.ly/cV2WBk" rel="nofollow noreferrer">URLConnection.guessContentTypeFromStream</a>

1 голос
/ 28 апреля 2010

Посмотрите на mime-utils .Работает с контентом и / или с расширениями.

0 голосов
/ 21 января 2019

Искал то же самое и обнаружил следующее: https://github.com/j256/simplemagic - похоже, это клон 'file', он даже использует копию файла, встроенную в волшебный файл.

...