-1

Мне нужно определить mime-тип файлов без расширений (файловые форматы документов, такие как PDF, doc, docx и т.д.), И мне интересно, насколько точны известные сигнатуры файлов?

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

1 ответ1

1

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

Чтобы найти такой способ идентификации для значительного количества типов файлов, потребовалось бы немало усилий. Вы должны искать инструмент, который уже доступен для этого, который может идентифицировать большинство типов, которые важны для вас. Вот программа для Windows, например, которая делает что-то подобное и имеет 5 944 определения типов файлов.

Можете ли вы предоставить больше информации о том, что вы пытаетесь сделать? Какое магическое число?

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .