Détecter le format de fichier de document
Cet article fournit un guide étape par étape sur la façon d’utiliser la fonctionnalité de détection du format de fichier de document avec Aspose.Words pour .NET. Nous expliquerons chaque partie du code en détail. A la fin de ce tutoriel, vous pourrez comprendre comment détecter le format de différents fichiers de documents.
Avant de commencer, assurez-vous d’avoir installé et configuré la bibliothèque Aspose.Words for .NET dans votre projet. Vous pouvez trouver la bibliothèque et les instructions d’installation sur le site Web d’Aspose.
Étape 1 : Définir les répertoires
Pour commencer, vous devez définir les répertoires dans lesquels vous souhaitez stocker les fichiers en fonction de leur format. Remplacer"YOUR DOCUMENT DIRECTORY"
avec le chemin réel vers votre répertoire de documents. Nous créons les répertoires “Supported”, “Unknown”, “Encrypted” et “Pre97” s’ils n’existent pas déjà.
string dataDir = "YOUR DOCUMENT DIRECTORY";
string supportedDir = dataDir + "Supported";
string unknownDir = dataDir + "Unknown";
string encryptedDir = dataDir + "Encrypted";
string pre97Dir = dataDir + "Pre97";
// Créez les répertoires s'ils n'existent pas déjà.
if (Directory.Exists(supportedDir) == false)
Directory.CreateDirectory(supportedDir);
if (Directory.Exists(unknownDir) == false)
Directory.CreateDirectory(unknownDir);
if (Directory.Exists(encryptedDir) == false)
Directory.CreateDirectory(encryptedDir);
if (Directory.Exists(pre97Dir) == false)
Directory.CreateDirectory(pre97Dir);
Étape 2 : Parcourir les fichiers
Ensuite, nous utilisons leGetFiles
méthode duDirectory
classe pour obtenir la liste des fichiers dans le répertoire spécifié. Nous utilisons également unWhere
clause pour exclure un fichier spécifique nommé “Document corrompu.docx”.
IEnumerable<string> fileList = Directory.GetFiles(MyDir).Where(name => !name.EndsWith("Corrupted document.docx"));
Étape 3 : Détecter le format de chaque fichier
Nous parcourons chaque fichier de la liste et utilisons leDetectFileFormat
méthode duFileFormatUtil
classe pour détecter le format du fichier. Nous affichons également le type de document détecté.
foreach (string fileName in fileList)
{
string nameOnly = Path. GetFileName(fileName);
Console.Write(nameOnly);
FileFormatInfo info = FileFormatUtil.DetectFileFormat(fileName);
// Afficher le type de document
switch (info.LoadFormat)
{
LoadFormat.Doc box:
Console.WriteLine("\tDocument Microsoft Word 97-2003.");
break;
LoadFormat.Dot box:
Console.WriteLine("\tMicrosoft Word 97-2003 template.");
break;
LoadFormat.Docx box:
Console.WriteLine("\tDocument Office Open XML WordprocessingML without macros.");
break;
// ... Ajouter des cas pour d'autres formats de documents pris en charge
LoadFormat.Unknown case:
Console.WriteLine("\tFormat in
known.");
break;
}
if (info.IsEncrypted)
{
Console.WriteLine("\tAn encrypted document.");
File.Copy(fileName, Path.Combine(encryptedDir, nameOnly), true);
}
else
{
switch (info.LoadFormat)
{
LoadFormat.DocPreWord60 box:
File.Copy(fileName, Path.Combine(pre97Dir, nameOnly), true);
break;
LoadFormat.Unknown case:
File.Copy(fileName, Path.Combine(unknownDir, nameOnly), true);
break;
default:
File.Copy(fileName, Path.Combine(supportedDir, nameOnly), true);
break;
}
}
}
C’est tout ! Vous avez détecté avec succès le format de différents fichiers de documents à l’aide d’Aspose.Words pour .NET.
Exemple de code source pour la détection du format de fichier avec Aspose.Words for .NET
// Le chemin d'accès au répertoire des documents.
string dataDir = "YOUR DOCUMENT DIRECTORY";
string supportedDir = dataDir + "Supported";
string unknownDir = dataDir + "Unknown";
string encryptedDir = dataDir + "Encrypted";
string pre97Dir = dataDir + "Pre97";
// Créez les répertoires s'ils n'existent pas déjà.
if (Directory.Exists(supportedDir) == false)
Directory.CreateDirectory(supportedDir);
if (Directory.Exists(unknownDir) == false)
Directory.CreateDirectory(unknownDir);
if (Directory.Exists(encryptedDir) == false)
Directory.CreateDirectory(encryptedDir);
if (Directory.Exists(pre97Dir) == false)
Directory.CreateDirectory(pre97Dir);
IEnumerable<string> fileList = Directory.GetFiles(MyDir).Where(name => !name.EndsWith("Corrupted document.docx"));
foreach (string fileName in fileList)
{
string nameOnly = Path.GetFileName(fileName);
Console.Write(nameOnly);
FileFormatInfo info = FileFormatUtil.DetectFileFormat(fileName);
// Afficher le type de document
switch (info.LoadFormat)
{
case LoadFormat.Doc:
Console.WriteLine("\tMicrosoft Word 97-2003 document.");
break;
case LoadFormat.Dot:
Console.WriteLine("\tMicrosoft Word 97-2003 template.");
break;
case LoadFormat.Docx:
Console.WriteLine("\tOffice Open XML WordprocessingML Macro-Free Document.");
break;
case LoadFormat.Docm:
Console.WriteLine("\tOffice Open XML WordprocessingML Macro-Enabled Document.");
break;
case LoadFormat.Dotx:
Console.WriteLine("\tOffice Open XML WordprocessingML Macro-Free Template.");
break;
case LoadFormat.Dotm:
Console.WriteLine("\tOffice Open XML WordprocessingML Macro-Enabled Template.");
break;
case LoadFormat.FlatOpc:
Console.WriteLine("\tFlat OPC document.");
break;
case LoadFormat.Rtf:
Console.WriteLine("\tRTF format.");
break;
case LoadFormat.WordML:
Console.WriteLine("\tMicrosoft Word 2003 WordprocessingML format.");
break;
case LoadFormat.Html:
Console.WriteLine("\tHTML format.");
break;
case LoadFormat.Mhtml:
Console.WriteLine("\tMHTML (Web archive) format.");
break;
case LoadFormat.Odt:
Console.WriteLine("\tOpenDocument Text.");
break;
case LoadFormat.Ott:
Console.WriteLine("\tOpenDocument Text Template.");
break;
case LoadFormat.DocPreWord60:
Console.WriteLine("\tMS Word 6 or Word 95 format.");
break;
case LoadFormat.Unknown:
Console.WriteLine("\tUnknown format.");
break;
}
if (info.IsEncrypted)
{
Console.WriteLine("\tAn encrypted document.");
File.Copy(fileName, Path.Combine(encryptedDir, nameOnly), true);
}
else
{
switch (info.LoadFormat)
{
case LoadFormat.DocPreWord60:
File.Copy(fileName, Path.Combine(pre97Dir, nameOnly), true);
break;
case LoadFormat.Unknown:
File.Copy(fileName, Path.Combine(unknownDir, nameOnly), true);
break;
default:
File.Copy(fileName, Path.Combine(supportedDir, nameOnly), true);
break;
}
}
}
FAQ pour la détection du format de fichier de document
Comment détecter le format d’un fichier de document à l’aide d’Aspose.Words pour .NET ?
Pour détecter le format d’un fichier de document à l’aide d’Aspose.Words for .NET, vous pouvez suivre les étapes fournies dans le didacticiel. En utilisant leDetectFileFormat
méthode duFileFormatUtil
La classe vous permettra de détecter le format du fichier du document. Cela vous permettra de déterminer s’il s’agit d’un document Microsoft Word 97-2003, d’un modèle, d’un document Office Open XML WordprocessingML ou d’autres formats pris en charge. Le code fourni dans le didacticiel vous guidera dans la mise en œuvre de cette fonctionnalité.
Quels formats de documents Aspose.Words for .NET prend-il en charge ?
Aspose.Words for .NET prend en charge une variété de formats de documents, notamment les documents Microsoft Word 97-2003 (DOC), les modèles (DOT), les documents Office Open XML WordprocessingML (DOCX), les documents Office Open XML WordprocessingML avec macros (DOCM), Office Open. Modèles XML WordprocessingML sans macros (DOTX), modèles Office Open XML WordprocessingML avec macros (DOTM), documents Flat OPC, documents RTF, documents Microsoft Word 2003 WordprocessingML, documents HTML, documents MHTML (archives Web), documents OpenDocument Text (ODT), Modèles OpenDocument Text (OTT), documents MS Word 6 ou Word 95 et formats de documents inconnus.
Comment gérer les fichiers de documents cryptés lors de la détection du format ?
Lors de la détection du format d’un fichier de document, vous pouvez utiliser leIsEncrypted
propriété duFileFormatInfo
objet pour vérifier si le fichier est crypté. Si le fichier est crypté, vous pouvez prendre des mesures supplémentaires pour gérer ce cas spécifique, comme copier le fichier dans un répertoire dédié aux documents cryptés. Vous pouvez utiliser leFile.Copy
méthode pour le faire.
Quelles actions entreprendre lorsque le format d’un document est inconnu ?
Lorsque le format d’un document est inconnu, vous pouvez décider de le traiter d’une manière spécifique à votre application. Dans l’exemple fourni dans le tutoriel, le document est copié dans un répertoire spécifique dédié aux documents de format inconnu. Vous pouvez personnaliser cette action en fonction de vos besoins spécifiques.
Existe-t-il d’autres fonctionnalités d’Aspose.Words pour .NET qui peuvent être utilisées conjointement avec la détection du format de document ?
Oui, Aspose.Words for .NET offre de nombreuses autres fonctionnalités pour le traitement et la manipulation des documents Word. Par exemple, vous pouvez utiliser la bibliothèque pour extraire du texte, des images ou des métadonnées de documents, appliquer des modifications de formatage, fusionner des documents, convertir des documents dans différents formats, etc.