Это будет легко для некоторых типов файлов и трудно или невозможно для других. Каждый тип файла будет отличаться. В файле нет ни одного места, которое бы указывало на тип файла. Например, изображения JPEG имеют очень узнаваемый заголовок с определенными подписями, нижний колонтитул и их легко идентифицировать. Но к обычным текстовым файлам вообще не прикрепляются метаданные. Если вы посмотрите на них в виде необработанных данных, вы увидите, что текстовая информация просто перемешивается между предыдущим файлом и следующим файлом. Если у вас есть файл, то вы можете отсканировать весь файл, чтобы убедиться, что это ASCII или Unicode.
Чтобы найти такой способ идентификации для значительного количества типов файлов, потребовалось бы немало усилий. Вы должны искать инструмент, который уже доступен для этого, который может идентифицировать большинство типов, которые важны для вас. Вот программа для Windows, например, которая делает что-то подобное и имеет 5 944 определения типов файлов.
Можете ли вы предоставить больше информации о том, что вы пытаетесь сделать? Какое магическое число?