DetectFileFormat

DetectFileFormat(string)

Detecta y devuelve información sobre el formato de un documento almacenado en un archivo de disco.

public static FileFormatInfo DetectFileFormat(string fileName)
ParámetroEscribeDescripción
fileNameStringEl nombre del archivo.

Valor_devuelto

AFileFormatInfo objeto que contiene la información detectada.

Observaciones

Incluso si este método detecta el formato del documento, no garantiza que el documento especificado sea válido. Este método solo detecta el formato del documento leyendo datos que son suficientes para la detección. Para verificar completamente que un documento es válido , debe cargar el documento en unDocument objeto.

Este método arrojaFileCorruptedException cuando se reconoce el formato , pero la detección no se puede completar debido a corrupción.

Ejemplos

Muestra cómo utilizar la clase FileFormatUtil para detectar el formato y el cifrado del documento.

Document doc = new Document();

// Configurar un objeto SaveOptions para cifrar el documento
// con una contraseña cuando lo guardamos, y luego guardamos el documento.
OdtSaveOptions saveOptions = new OdtSaveOptions(SaveFormat.Odt);
saveOptions.Password = "MyPassword";

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

// Verificar el tipo de archivo de nuestro documento, y su estado de cifrado.
FileFormatInfo info = FileFormatUtil.DetectFileFormat(ArtifactsDir + "File.DetectDocumentEncryption.odt");

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

Muestra cómo utilizar la clase FileFormatUtil para detectar el formato del documento y la presencia de firmas digitales.

// Utilice una instancia de FileFormatInfo para verificar que un documento no esté firmado digitalmente.
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 });

// Utilice un nuevo FileFormatInstance para confirmar que está firmado.
info = FileFormatUtil.DetectFileFormat(ArtifactsDir + "File.DetectDigitalSignatures.docx");

Assert.True(info.HasDigitalSignature);

// Podemos cargar y acceder a las firmas de un documento firmado en una colección como esta.
Assert.AreEqual(1, DigitalSignatureUtil.LoadSignatures(ArtifactsDir + "File.DetectDigitalSignatures.docx").Count);

Ver también


DetectFileFormat(Stream)

Detecta y devuelve información sobre el formato de un documento almacenado en una secuencia.

public static FileFormatInfo DetectFileFormat(Stream stream)
ParámetroEscribeDescripción
streamStreamLa corriente.

Valor_devuelto

AFileFormatInfo objeto que contiene la información detectada.

Observaciones

La secuencia debe colocarse al principio del documento.

Cuando este método regresa, la posición en la secuencia se restaura a la posición original.

Incluso si este método detecta el formato del documento, no garantiza que el documento especificado sea válido. Este método solo detecta el formato del documento leyendo datos que son suficientes para la detección. Para verificar completamente que un documento es válido , debe cargar el documento en unDocument objeto.

Este método arrojaFileCorruptedException cuando se reconoce el formato , pero la detección no se puede completar debido a corrupción.

Ejemplos

Muestra cómo utilizar los métodos FileFormatUtil para detectar el formato de un documento.

// Cargue un documento desde un archivo al que le falta una extensión de archivo y luego detecte su formato de archivo.
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);

    // A continuación se muestran dos métodos para convertir un LoadFormat a su SaveFormat correspondiente.
    // 1 - Obtenga la cadena de extensión del archivo para LoadFormat, luego obtenga el SaveFormat correspondiente de esa cadena:
    string fileExtension = FileFormatUtil.LoadFormatToExtension(loadFormat);
    SaveFormat saveFormat = FileFormatUtil.ExtensionToSaveFormat(fileExtension);

    // 2 - Convertir LoadFormat directamente a su SaveFormat:
    saveFormat = FileFormatUtil.LoadFormatToSaveFormat(loadFormat);

    // Cargue un documento de la secuencia y luego guárdelo en la extensión de archivo detectada automáticamente.
    Document doc = new Document(docStream);

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

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

Ver también