Это возможно, но не всегда однозначно и чисто.
Возьмите, например, файлы документов Microsoft Office (.docx
, .xlsx
и т.д.). Это действительно zip-файлы со специальным содержимым, которое Microsoft Office знает, как их открывать. Так что, если бы операционная система угадывала, основываясь на формате файла, она увидела бы, что это действительные zip-файлы и открыла их в вашей программе сжатия. Если сначала он не разархивировал файлы, а затем начал просматривать содержимое, чтобы увидеть, действительно ли файлы были файлами Excel, в этот момент он удалит временно разархивированную копию и передаст оригинальный файл в Excel. Возможно, это можно сделать, но в конечном итоге вам придется иметь много логики в ОС, чтобы делать подобные предположения.
Существуют программы, которые пытаются сделать это предположение - например, программный файл UNIX. Вы можете заглянуть на волшебную страницу в Википедии, чтобы понять, как это работает. Проблема, с которой вы можете столкнуться здесь, заключается в том, что если кто-то особенно плотно использовал чужое магическое число, вы снова обращаетесь к расширению файла. Представьте формат файла, отличный от PDF, с помощью «% PDF».
Mac OS хранит тип файла в специальном коде типа, чтобы обойти эту проблему.