2009-10-08 7 views
1

Lors de la lecture de fichiers zip (en utilisant Java ZipInputStream ou toute autre bibliothèque) à partir d'une source inconnue, il est possible de détecter quelles entrées sont "données de caractères" ou "binaires" Les données". Et, si binaire, une façon de déterminer plus d'informations (types MIME, etc.)détecter des fichiers binaires et des codages de caractères dans les fichiers zip

EDIT ne la ByteOrderMark (BOM) se produisent dans zipentries et si nous aussi devoir faire des opérations spéciales pour elle.

Répondre

1

Il se résume essentiellement à des heuristiques pour déterminer le contenu des fichiers. Par exemple, pour les fichiers texte (ASCII), il devrait être possible de faire une estimation approximative en vérifiant la plage des valeurs d'octets utilisées dans le fichier - bien que cela ne soit jamais complètement infaillible.

Vous devriez essayer de limiter les classes de types de fichiers que vous souhaitez identifier, par ex. suffit-il de distinguer entre "données texte" et "données binaires"? Si oui, vous devriez être en mesure d'obtenir un taux de réussite assez élevé pour la détection.

Pour les systèmes UNIX, il y a toujours le file command qui essaie d'identifier les types de fichiers en fonction du contenu (principalement).

0

Peut-être implémenter un composant Java capable d'appliquer les règles définies dans /usr/share/file/magic. J'aimerais avoir quelque chose comme ça. (Vous devriez essentiellement être capable de regarder le premier x couple d'octets.)

Questions connexes