Здравствуйте, denis1987, Вы писали:
D>Здравствуйте!
D>Решаю задачу определения типа файла по уникальной сигнатуре, расположенной в его начале.
D>Например, если, в сигнатуре найдена последовательность "BM", то это файл .bmp, "D0CF11E0A1B11AE1" — документ MS Office.
D>Все такие последовательности располагаются в базе данных, базе сигнатур.
D>Извлекать их не составляет большого труда, но где можно найти, собственно, такую базу?
D>Не методом же тыка заполнять её!
D>Есть ли у кого какие-нибудь идеи?
Есть, взять какую-нибудь готовую программу и посмотреть, например, стандартную file. Ее самую популярную реализацию можно взять
здесь.
... << RSDN@Home 1.2.0 alpha rev. 746>>
denis1987 пишет:
> Решаю задачу определения типа файла по уникальной сигнатуре,
> расположенной в его начале.
> Например, если, в сигнатуре найдена последовательность "BM", то это файл
Есть интернетовский комитет, который этим занимается. Он MIME-типы
все хранит. Я только забыл, как это называется. Поищи что-то типа
registration of MIME type.
Posted via RSDN NNTP Server 2.1 beta
Здравствуйте, denis1987, Вы писали:
D>Буду признателен увидеть ваши мнения.
Такая база есть. Называется она magic.mime (поищи в нете, ссылку потерял). Каждый тип файла описан одной строкой довольно простого формата, например для zip-файлов:
0 string PK\003\004 application/zip
Что значит: «тип файла, у которого с 0 байта идёт строка PK\003\004 — application/zip». Ну и так далее…
... << RSDN@Home 1.2.0 alpha rev. 739>>
Здравствуйте, denis1987, Вы писали:
D>Буду признателен увидеть ваши мнения.
Такая база есть. Называется она magic.mime (поищи в нете, ссылку потерял). Каждый тип файла описан одной строкой довольно простого формата, например для zip-файлов:
0 string PK\003\004 application/zip
Что значит: «тип файла, у которого с 0 байта идёт строка PK\003\004 — application/zip». Ну и так далее…
... << RSDN@Home 1.2.0 alpha rev. 739>>
Здравствуйте, denis1987, Вы писали:
D>Не методом же тыка заполнять её!
D>Есть ли у кого какие-нибудь идеи?
www.filext.com и подобные. Можно узнать сигнатуру для конкретного типа. Можно даже попытаться автоматизировать запросы.