Некоторые другие постеры пока что пренебрегают несколькими вещами.
File :: MimeInfo использует ту же базу данных MimeInfo, что и «file» для идентификации файлов. Так что вряд ли что-то сделаете иначе.
File :: Type , вероятно, будет интересен, поскольку он опирается только на себя, но это приводит к длинному сценарию comics , полному операторов if. Но это, по самой своей природе, вряд ли охватывать вещи, которые «файл» уже не покрывает.
Лучшее, что вы можете сделать с неизвестными типами файлов, это попытаться открыть их с помощью шестнадцатеричного редактора или пропустить через «строки» и посмотреть, узнаете ли вы что-нибудь. Если вам удастся определить файл, вы можете выбрать File :: Type в качестве решения, потому что, насколько я могу судить, его, по крайней мере, легко расширить.