Чому операційна система не може вирішити, яку програму використовувати для відкриття файлів без їх суфікса?


2

Наприклад, якщо ми перейменовуємо .pdf-файл у .exe і спробуємо запустити його під вікном, станеться помилка. Але чи можливо для ОС визначити, яку програму використовувати для відкриття файлу на основі його вмісту? не просто приховуючи свою подовжувальну частину.

тобто у мене є файл з назвою "abc", який є файлом pdf. Коли я двічі клацну його, відкриється читач PDF.

Якщо це можливо, чи можуть бути якісь питання безпеки?


4
Можливо. І це робиться. Тільки не на вікнах.
Hennes

Його вікна річ. Linux, як правило, використовує магічні цифри, щоб вирішити, що таке файл, якщо тільки його якось важко закодовано в програмне забезпечення.
Подорожник Geek

@JourneymanGeek: Це частково правда, але все ще досить неправильно, щоб стати прикрою, коли всі папуги її не враховують, наприклад, проблеми, описані dsolimano. Навіть Windows розпізнає виконувані файли за MZчарівними числами; навіть програми Windows дозволяють відкривати будь-який файл незалежно від розширення; і навіть середовища Linux покладаються на розширення як швидке (якщо не надійне) вказівку того, який тип файлу це може бути. Досить багато системних служб приймають лише .confфайли та відхиляють .conf.dpkg-newз однаковим вмістом.
grawity

Добре, зафіксовано це заради педантизму; p
Подорожник Geek

Відповіді:


4

Це можливо, але не завжди однозначно і чисто.

Візьмемо для прикладу файлів Microsoft Office документів ( .docx, .xlsx, і т.д.). Вони справді поштові файли зі спеціальним вмістом, який Microsoft Office знає, як відкрити. Тож якби операційна система здогадалася, виходячи з формату файлу, вона побачила б, що вони є дійсними zip-файлами, і відкриє їх у вашій програмі стиснення. Якщо тільки він спочатку не розпакував файли, а потім почав переглядати вміст, щоб побачити, чи справді це файли файлів Excel, після чого він видалить тимчасово розпаковану копію та передасть оригінальний файл в Excel. Це, можливо, можна зробити, але вам доведеться мати багато логіки в ОС, щоб робити такі здогадки.

Є програми, які намагаються зробити це здогадкою - наприклад, програмний файл UNIX . Ви можете подивитися на магічну сторінку нумерації у Вікіпедії, щоб отримати уявлення про те, як це працює. Проблема, з якою ви можете зіткнутися тут, полягає в тому, що якщо хтось особливо щільно використовував чуже магічне число, ви знову переглянете розширення файлу. Уявіть формат файлу, що не є PDF, із "% PDF".

Mac OS зберігає тип файлу в спеціальному коді типу, щоб усунути цю проблему.


1
Додайте до цього файли OpenDocument; Додатки Java; Пакети Android; Розширення Mozilla; Теми Winamp ... всі вони використовують формат Zip. Не кажучи вже про те, що цілком допустимо, щоб Zip-файл починався посередині , можливо, йому передувала самозаймальна заглушка - і якщо вона викликається, file.zipбільшість людей, звичайно, вважають за краще відкрити її в архіваторі, а не виконувати як програму MZ або ELF ...
grawity
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.