Да, можно определить тип файла, не используя расширение файла. Вы можете сделать это, прочитав заголовок файла, который также иногда называют сигнатурой файла, который занимает первые несколько байтов файла.
Сколько байтов занимают заголовок / подпись файла? Это зависит от типа файла к типу файла. Поэтому вам следует проверить в Интернете более подробную информацию о заголовке / подписи файла для определенного типа файла, который вы хотите идентифицировать.
Вы можете найти список некоторых более популярных подписей Список подписей файлов - Википедия
PS: большинство программ перестали полагаться только на подписи файлов для определения пути к файлу, когда появилась первая Windows. Основной причиной этого был тот факт, что в начале расширения файлов были ограничены длиной в три символа (предел старых файловых систем, таких как старые FAT8 или FAT16), мир быстро исчерпал возможные расширения файлов, поэтому несколько программ начали использовать один и тот же файл. расширения, но используются совершенно разные типы файлов. Таким образом, сохраняя заголовок / подпись файла в начале файла, вы больше не будете ограничены этим ограничением файловой системы.