ôtez moi d'un doute.
Bonjour,
Suite à une discussion sur un logiciel qui permettra d'obtenir les informations d'un fichier grâce à son extension, quelqu'un m'a parlé de la commande "file" via le terminal.
En effet, si on tape "file cheminDuFichier.doc" par exemple, on obtiens les informations. Seulement, je répond que ça ne peut pas marcher pour les extensions inconnues oO c'est à dire que ça ne pourrait pas marcher pour les fichiers donc l'application liée n'existe pas.
On me répond que si, et que le type de document est archivé dans le fichier lui même.
Je reste sur ma position, mais cette réponse m'a fait douté.
Pour moi, vu que les types de documents sont renseignés dans le "Info.plist" d'une application document-based, je pense que ça dépend justement de ça et que ça a un rapport aussi avec la BDD LaunchService ? oO
Je me trompe peut-être.. À vous de m'éclaircir
Merci,
Louka.
Suite à une discussion sur un logiciel qui permettra d'obtenir les informations d'un fichier grâce à son extension, quelqu'un m'a parlé de la commande "file" via le terminal.
En effet, si on tape "file cheminDuFichier.doc" par exemple, on obtiens les informations. Seulement, je répond que ça ne peut pas marcher pour les extensions inconnues oO c'est à dire que ça ne pourrait pas marcher pour les fichiers donc l'application liée n'existe pas.
On me répond que si, et que le type de document est archivé dans le fichier lui même.
Je reste sur ma position, mais cette réponse m'a fait douté.
Pour moi, vu que les types de documents sont renseignés dans le "Info.plist" d'une application document-based, je pense que ça dépend justement de ça et que ça a un rapport aussi avec la BDD LaunchService ? oO
Je me trompe peut-être.. À vous de m'éclaircir
Merci,
Louka.
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
En effet une grande majorité de formats de fichiers binaires commencent toujours par les mêmes octets, qu'on appelle le "magic number" d'un format, et qui permet dès la lecture des premiers octets du fichier de savoir à quel type de fichier on a affaire.
Par exemple les images GIF commencent par es octets dont la représentation textuelle est "GIF87a" ou "GIF89a". Les programmes java compilés commencent par les octets 0xCAFEBABE, les images JPEG commencent par les octets qui correspondent à la chaà®ne ASCII "JFIF", les PDFs par les 4 octets "%PDF", etc.
Si aucune correspondance n'est trouvée, c'est que c'est certainement un fichier texte.
Après c'est le système utilisé par l'utilitaire UNIX "file". Il n'est pas infaillible, mais l'histoire des "magic numbers" est quand même pas mal utilisée (je te laisse chercher sur google ou wikipedia) pour reconnaà®tre un type de fichier.
Maintenant ça ne se repose donc ni sur les extensions du fichier, ni sur les LaunchServices, ce qui peut être un avantage (pour reconnaà®tre le type d'un fichier dont l'extension manquerait ou aurait été changée par exemple) comme un inconvénient.