Por que o sistema operacional não pode decidir qual programa usar ao abrir arquivos sem o sufixo?

2

Por exemplo, se renomearmos um arquivo .pdf para .exe e tentarmos executá-lo no windows, ocorrerá um erro. Mas é possível para o sistema operacional determinar qual programa usar para abrir um arquivo com base em seu conteúdo? não apenas escondendo sua parte de extensão.

i.e. Eu tenho um arquivo chamado "abc", que é um arquivo pdf. Quando clico duas vezes, um leitor de pdf será aberto.

Se for possível, pode haver algum problema relacionado à segurança?

    
por blance 30.09.2014 / 15:58

1 resposta

4

É possível, mas nem sempre de forma clara e sem ambiguidades.

Tome por exemplo arquivos de documentos do Microsoft Office ( .docx , .xlsx , etc). Eles são realmente arquivos zip com conteúdo especial que o Microsoft Office sabe abrir. Portanto, se o sistema operacional adivinhar com base no formato do arquivo, ele verá que são arquivos zip válidos e os abrirá no programa de compactação. A menos que ele primeiro descompactasse os arquivos e, em seguida, começasse a examinar o conteúdo para ver se realmente os arquivos eram arquivos do Excel, a ponto de excluir a cópia descompactada temporariamente e passar o arquivo original para o Excel. Isso pode ser feito, mas você acaba tendo que ter muita lógica no sistema operacional para fazer esse tipo de suposição.

Existem programas que tentam adivinhar - por exemplo, o arquivo do programa UNIX. Você pode olhar a página mágica numbe na Wikipédia para ter uma idéia de como isso funciona. O problema que você pode encontrar aqui é que se alguém particularmente denso usou o número mágico de outra pessoa, você está de volta a olhar para a extensão do arquivo. Imagine um formato de arquivo não PDF com "% PDF".

O Mac OS armazenou o tipo de arquivo em um código de tipo especial para contornar este problema.

    
por 30.09.2014 / 16:15