Пару раз задавался вопросом:
---
Как проверить, является ли данный файл архивом?
Если файл - архив, то какой архив(каким архиватором упакован)?
----
Первое, что пришло в голову, попытаться найти закономерности в заголовке файла.
В arj, ms cab, pkzip - нашел быстро, но вот с остальными, проблема...
Есть ли варианты как-то определить данное свойство файла? Конечно интересует кроссплатформенный вариант.
Для начала сойдет вариант под Windows.
У кого какие идеи есть по этому счету? Если есть какие либо компоненты, которые решают данную задачу, то очень бы хотелось посмотреть, как именно это делается.
Проверка архив ли это?
Модератор: Модераторы
одна из первых ссылок в яндексе
http://habrahabr.ru/post/186828/
а там две ссылки на списки сигнатур
http://en.wikipedia.org/wiki/List_of_file_signatures
http://filesignatures.net/index.php?page=all
думаю для вашей задачи достаточно более чем
http://habrahabr.ru/post/186828/
а там две ссылки на списки сигнатур
http://en.wikipedia.org/wiki/List_of_file_signatures
http://filesignatures.net/index.php?page=all
думаю для вашей задачи достаточно более чем
Спасибо. 
Да, пожалуй, это то, что было нужно.
ps.
Правильно сформулированный вопрос содежит как минимум часть ответа.
Да, пожалуй, это то, что было нужно.
ps.
Правильно сформулированный вопрос содежит как минимум часть ответа.
Нужно узнать быстро и максимально точно.
- debi12345
- долгожитель
- Сообщения: 5761
- Зарегистрирован: 10.05.2006 23:41:15
- Откуда: Ташкент (Узбекистан)
Нужно узнать быстро и максимально точно.
Если архив битый или недокачанный (заголовок/сигнатура в порядке, начальная часть данных -тоже, остальное - мусор) - без (возможно медленного) тестрирования всего архива не обойдешься. Если есть возможность (заранее известные имена и контрольные суммы файлов,..) - можно вместо тестирования архива сличать конрольные суммы, в идеале - SHA256-хэши.
