DetectFileFormat

DetectFileFormat(string)

Détecte et renvoie les informations sur le format d’un document stocké dans un fichier disque.

public static FileFormatInfo DetectFileFormat(string fileName)
ParamètreTaperLa description
fileNameStringLe nom du fichier.

Return_Value

UNFileFormatInfo objet qui contient les informations détectées.

Remarques

Même si cette méthode détecte le format du document, elle ne garantit pas que le document spécifié est valide. Cette méthode détecte uniquement le format du document en lisant les données suffisantes pour la détection. Pour vérifier complètement qu’un document est valide , vous devez charger le document dans unDocument objet.

Cette méthode jetteFileCorruptedException lorsque le format est reconnu, mais que la détection ne peut pas se terminer en raison d’une corruption.

Exemples

Montre comment utiliser la classe FileFormatUtil pour détecter le format et le chiffrement du document.

Document doc = new Document();

// Configure un objet SaveOptions pour chiffrer le document
// avec un mot de passe lorsque nous l'enregistrons, puis enregistrons le document.
OdtSaveOptions saveOptions = new OdtSaveOptions(SaveFormat.Odt);
saveOptions.Password = "MyPassword";

doc.Save(ArtifactsDir + "File.DetectDocumentEncryption.odt", saveOptions);

// Vérifiez le type de fichier de notre document et son état de cryptage.
FileFormatInfo info = FileFormatUtil.DetectFileFormat(ArtifactsDir + "File.DetectDocumentEncryption.odt");

Assert.AreEqual(".odt", FileFormatUtil.LoadFormatToExtension(info.LoadFormat));
Assert.True(info.IsEncrypted);

Montre comment utiliser la classe FileFormatUtil pour détecter le format du document et la présence de signatures numériques.

// Utilisez une instance FileFormatInfo pour vérifier qu'un document n'est pas signé numériquement.
FileFormatInfo info = FileFormatUtil.DetectFileFormat(MyDir + "Document.docx");

Assert.AreEqual(".docx", FileFormatUtil.LoadFormatToExtension(info.LoadFormat));
Assert.False(info.HasDigitalSignature);

CertificateHolder certificateHolder = CertificateHolder.Create(MyDir + "morzal.pfx", "aw", null);
DigitalSignatureUtil.Sign(MyDir + "Document.docx", ArtifactsDir + "File.DetectDigitalSignatures.docx",
    certificateHolder, new SignOptions() { SignTime = DateTime.Now });

// Utilisez un nouveau FileFormatInstance pour confirmer qu'il est signé.
info = FileFormatUtil.DetectFileFormat(ArtifactsDir + "File.DetectDigitalSignatures.docx");

Assert.True(info.HasDigitalSignature);

// Nous pouvons charger et accéder aux signatures d'un document signé dans une collection comme celle-ci.
Assert.AreEqual(1, DigitalSignatureUtil.LoadSignatures(ArtifactsDir + "File.DetectDigitalSignatures.docx").Count);

Voir également


DetectFileFormat(Stream)

Détecte et renvoie les informations sur le format d’un document stocké dans un flux.

public static FileFormatInfo DetectFileFormat(Stream stream)
ParamètreTaperLa description
streamStreamLe flux.

Return_Value

UNFileFormatInfo objet qui contient les informations détectées.

Remarques

Le flux doit être positionné au début du document.

Lorsque cette méthode revient, la position dans le flux est restaurée à la position d’origine.

Même si cette méthode détecte le format du document, elle ne garantit pas que le document spécifié est valide. Cette méthode détecte uniquement le format du document en lisant les données suffisantes pour la détection. Pour vérifier complètement qu’un document est valide , vous devez charger le document dans unDocument objet.

Cette méthode jetteFileCorruptedException lorsque le format est reconnu, mais que la détection ne peut pas se terminer en raison d’une corruption.

Exemples

Montre comment utiliser les méthodes FileFormatUtil pour détecter le format d’un document.

// Charge un document à partir d'un fichier auquel il manque une extension de fichier, puis détecte son format de fichier.
using (FileStream docStream = File.OpenRead(MyDir + "Word document with missing file extension"))
{
    FileFormatInfo info = FileFormatUtil.DetectFileFormat(docStream);
    LoadFormat loadFormat = info.LoadFormat;

    Assert.AreEqual(LoadFormat.Doc, loadFormat);

    // Vous trouverez ci-dessous deux méthodes pour convertir un LoadFormat en son SaveFormat correspondant.
    // 1 - Récupère la chaîne d'extension de fichier pour LoadFormat, puis récupère le SaveFormat correspondant à partir de cette chaîne :
    string fileExtension = FileFormatUtil.LoadFormatToExtension(loadFormat);
    SaveFormat saveFormat = FileFormatUtil.ExtensionToSaveFormat(fileExtension);

    // 2 - Convertir le LoadFormat directement en son SaveFormat :
    saveFormat = FileFormatUtil.LoadFormatToSaveFormat(loadFormat);

    // Charge un document à partir du flux, puis enregistre-le sous l'extension de fichier automatiquement détectée.
    Document doc = new Document(docStream);

    Assert.AreEqual(".doc", FileFormatUtil.SaveFormatToExtension(saveFormat));

    doc.Save(ArtifactsDir + "File.SaveToDetectedFileFormat" + FileFormatUtil.SaveFormatToExtension(saveFormat));
}

Voir également