FileFormatUtilDetectFileFormat(String) Method |
Even if this method detects the document format, it does not guarantee that the specified document is valid. This method only detects the document format by reading data that is sufficient for detection. To fully verify that a document is valid you need to load the document into a Document object.
This method throws FileCorruptedException when the format is recognized, but the detection cannot complete because of corruption.
Document doc = new Document(); // Configure a SaveOptions object to encrypt the document // with a password when we save it, and then save the document. OdtSaveOptions saveOptions = new OdtSaveOptions(SaveFormat.Odt); saveOptions.Password = "MyPassword"; doc.Save(ArtifactsDir + "File.DetectDocumentEncryption.odt", saveOptions); // Verify the file type of our document, and its encryption status. FileFormatInfo info = FileFormatUtil.DetectFileFormat(ArtifactsDir + "File.DetectDocumentEncryption.odt"); Assert.AreEqual(".odt", FileFormatUtil.LoadFormatToExtension(info.LoadFormat)); Assert.True(info.IsEncrypted);
// Use a FileFormatInfo instance to verify that a document is not digitally signed. 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 }); // Use a new FileFormatInstance to confirm that it is signed. info = FileFormatUtil.DetectFileFormat(ArtifactsDir + "File.DetectDigitalSignatures.docx"); Assert.True(info.HasDigitalSignature); // We can load and access the signatures of a signed document in a collection like this. Assert.AreEqual(1, DigitalSignatureUtil.LoadSignatures(ArtifactsDir + "File.DetectDigitalSignatures.docx").Count);