---
title: "Détecter le format de fichier lors du chargement"
---


Parfois, il est nécessaire de déterminer le format d'un document avant de l'ouvrir car l'extension du fichier ne garantit pas que le contenu du fichier soit approprié. Par exemple, on sait que Crystal Reports génère souvent des documents au format RTF, mais leur donne l'extension .doc.

Aspose.Words offre la possibilité d'obtenir des informations sur le type de fichier afin d'éviter une exception si vous n'êtes pas sûr du contenu réel du fichier.

## Détecter le format de fichier sans exception

Lorsque vous traitez plusieurs documents dans différents formats de fichiers, vous devrez peut-être séparer les fichiers qui peuvent être traités par Aspose.Words de ceux qui ne le peuvent pas. Vous voudrez peut-être également savoir pourquoi certains documents ne peuvent pas être traités.

Si vous essayez de charger un fichier dans un objet [Document](https://reference.aspose.com/words/python-net/aspose.words/document/) et que Aspose.Words ne peut pas reconnaître le format de fichier ou que le format n'est pas pris en charge, Aspose.Words lèvera une exception. Vous pouvez détecter ces exceptions et les analyser, mais Aspose.Words fournit également la méthode [detect_file_format](https://reference.aspose.com/words/python-net/aspose.words/fileformatutil/detect_file_format/) qui nous permet de déterminer rapidement le format de fichier sans charger un document avec d'éventuelles exceptions. Cette méthode renvoie un objet [FileFormatInfo](https://reference.aspose.com/words/python-net/aspose.words/fileformatinfo/) qui contient les informations détectées sur le type de fichier.

{{% alert color="primary" %}}

[detect_file_format](https://reference.aspose.com/words/python-net/aspose.words/fileformatutil/detect_file_format/) vérifie uniquement le format de fichier mais ne valide pas le format de fichier. Il n'y a aucune garantie que le fichier sera ouvert avec succès, même si [detect_file_format](https://reference.aspose.com/words/python-net/aspose.words/fileformatutil/detect_file_format/) renvoie qu'il s'agit de l'un des formats pris en charge. En effet, la méthode [detect_file_format](https://reference.aspose.com/words/python-net/aspose.words/fileformatutil/detect_file_format/) ne lit que des données partielles sur le format de fichier, suffisantes pour vérifier le format de fichier, mais pas suffisantes pour une validation complète.

{{% /alert %}}

## Vérifier la compatibilité des formats de fichiers

Nous pouvons vérifier la compatibilité des formats de tous les fichiers du dossier sélectionné et les trier par format dans les sous-dossiers correspondants.

Puisque nous traitons du contenu d'un dossier, la première chose à faire est d'obtenir une collection de tous les fichiers de ce dossier en utilisant la méthode **rép_liste** du module **système d'exploitation**.

L'exemple de code suivant montre comment obtenir une liste de tous les fichiers du dossier:

{{< gist "aspose-words-gists" "e9d8f984dac599756ccb4a64b8c79768" "Examples-DocsExamples-DocsExamples-File Formats and Conversions-working_with_file_format-GetListOfFilesInFolder.py" >}}

Lorsque tous les fichiers sont collectés, le reste du travail est effectué par la méthode [detect_file_format](https://reference.aspose.com/words/python-net/aspose.words/fileformatutil/detect_file_format/), qui vérifie le format du fichier.

L'exemple de code suivant montre comment parcourir la liste de fichiers collectée, vérifier le format de chaque fichier et déplacer chaque fichier vers le dossier approprié:

{{< gist "aspose-words-gists" "e9d8f984dac599756ccb4a64b8c79768" "Examples-DocsExamples-DocsExamples-File Formats and Conversions-working_with_file_format-CheckFormatCompatibility.py" >}}

Les fichiers sont déplacés dans les sous-dossiers appropriés à l'aide de la méthode **copier un fichier** du module **fermer**.

Les fichiers suivants sont utilisés dans l'exemple ci-dessus. Le nom du fichier est à gauche et sa description est à droite:

| Group de fichiers | Document d'entrée | Taper |
|  :-  |  :-  |  :-  |
| Formats de fichiers pris en charge | Fichier de test (Doc).doc|Document Microsoft Word 95/6.0 ou Microsoft Word 97 – 2003. |
|  | Fichier de test (`Dot`).dot | Modèle Microsoft Word 95/6.0 ou Microsoft Word 97 – 2003. |
|  | Fichier de test (Docx).docx | Document Office Open XML WordprocessingML sans macros. |
|  | Fichier de test (Docm).docm | Document Office Open XML WordprocessingML avec macros. |
|  | Fichier de test (Dotx).dotx | Modèle Office Open XML WordprocessingML. |
|  | Fichier de test (Dotm).dotm | Modèle Office Open XML WordprocessingML avec macros. |
|  | Fichier de test (XML).xml | Document FlatOPC OOXML. |
|  | Fichier de test (RTF).rtf | Document au format texte enrichi. |
|  | Fichier de test (WordML).xml | Document WordprocessingML Microsoft Word 2003. |
|  | Fichier de test (HTML).html | Document HTML. |
|  | Fichier de test (MHTML).mhtml | Document MHTML (archive Web). |
|  | Fichier de test (Odt).odt | Texte OpenDocument (OpenOffice Writer). |
|  | Fichier de test (Ott).ott | Modèle de document OpenDocument. |
|  | Fichier de test (DocPreWord60).doc|Document Microsoft Word 2.0. |
| Documents cryptés | Fichier de test (Enc).doc|Document crypté Microsoft Word 95/6.0 ou Microsoft Word 97 – 2003. |
|  | Fichier de test (Enc).docx | Document Office Open XML WordprocessingML crypté. |
| Formats de fichiers non pris en charge | Fichier de test (JPG).jpg | Fichier image JPEG. |

