Есть ли способ определить аудио или графические файлы в Java, без использования расширения файла? - PullRequest
1 голос
/ 28 апреля 2010

Предположим, будут созданы новые типы аудио и изображений, я хочу, чтобы мой фильтр разделял изображения и аудио файлы. Есть ли способ распознать тогда?

Ответы [ 3 ]

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

Вы можете просмотреть файлы, чтобы определить фактический тип носителя. Посмотрите на Java Mime Magic Library . Это похоже на команду file в unix.

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

Короче ... нет.

В общем, при условии, что у нас нет знаний о медиафайлах и их типах [т.е. нет знаний о расширениях файлов, формате данных и т. Д.], Единственный способ определить тип файла - это проверить его данные и определить его - что требует глубоких знаний о формате медиа, чего у нас нет.

Однако, если наша операционная система содержит эти медиа-файлы, есть вероятность, что кто-то в системе знает , как их открывать или манипулировать ими. Поэтому логично предположить, что это приложение будет регистрировать тип мультимедиа [и другие метаданные, такие как расширение файла, проигрыватель по умолчанию и т. Д.] В системе.

Так что, если вы заинтересованы в сохранении динамичности, вам, вероятно, следует найти средство связи с базовой системой для событий мультимедиа [например, когда встречается и регистрируется новый формат мультимедиа].

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

Я могу предложить вам только решение на основе исключений, т. Е. Попытаться прочитать каждый файл с помощью ImageIO, и если возникнет исключение, то это не файл изображения. Но это плохое решение.

Тебе лучше найти возможность отличить их другим, более логичным способом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...