2010-06-11 4 views
6

Il existe une contrainte dans le système de gestion de contenu qui nécessite de stocker tous les documents Word avec une extension spécifique (différente de DOC ou DOCX). Cependant, lors de la sortie du document à l'utilisateur, nous devons savoir s'il s'agit d'un fichier DOC ou DOCX afin de fournir le bon type MIME. Donc, existe-t-il un moyen de savoir par programme si DOC est DOC ou DOCX par son contenu?Déterminer si le document est DOC ou DOCX dans l'application Java sans connaître son extension

Répondre

10

Here est un lien vers le ForensicsWiki qui détaille beaucoup de types de fichiers différents. Il décrit les en-têtes des fichiers DOC et DOCX, vous devriez donc pouvoir analyser les fichiers et déterminer leur nature.

Axé sur le lien, les fichiers .doc sont composés OLE fichiers, le fichier doit avoir l'en-tête binaire suivant:

d0 cf 11 e0 a1 b1 1a e1 

En constraste, les fichiers .docx auront la signature binaire:

50 4b 
+0

Si un fichier docx est protégé par mot de passe, il aura également 'd0 cf 11 e0 a1 b1 1a e1' dans l'en-tête. – SolidSun

9

Les fichiers DOCX sont au format ZIP, dans lequel les deux premiers octets sont les lettres PK (après le créateur de ZIP, Phil Katz).

+0

Merci les gars, semble être très clair et facile – Andriy

Questions connexes