Расширение врёт: как я учил Android-приложение открывать двести типов файлов по первым байтам

Habr ·

У каждого файла два имени. Первое написано после точки, и верить ему нельзя: его придумал человек, почтовый клиент или сайт, который «на всякий случай» переименовал вложение. Второе лежит в первых байтах. Вот оно почти никогда не врёт. Я делаю XanderFiles — просмотрщик для Android, который открывает двести с лишним расширений: от PDF и Excel до winmail.dat, подписанных .p7m , RAR с паролем, книг FB2, RAW с фотоаппаратов, билетов Wallet, снимков КТ с диска из клиники и рисунков CorelDRAW. Это статья не о том, как меня достала надпись «Не удаётся открыть файл». Она о том, как всё устроено внутри и на какие грабли я наступил. Будут WebAssembly, матрёшка из Outlook, правка чужого минифицированного кода на лету и картинки, которые никто не рисует. Читать далее

Источник: Habr