Detectar o formato do ficheiro e verificar a compatibilidade do formato

Às vezes, é necessário determinar o formato de um documento antes de abrir, porque a extensão do arquivo não garante que o conteúdo do arquivo seja apropriado. Por exemplo, sabe-se que o Crystal Reports apresenta frequentemente documentos no formato RTF, mas fornece-lhes o.extensão doc.

Aspose.Words permite obter informações sobre o tipo de ficheiro, a fim de evitar uma excepção se não tiver a certeza do conteúdo real do ficheiro.

Detectar o formato do Ficheiro sem excepção

Quando se trata de vários documentos em vários formatos de ficheiro, pode ser necessário separar os ficheiros que podem ser processados por Aspose.Words daqueles que não podem. Talvez queira também saber por que razão alguns dos documentos não podem ser tratados.

Se você tentar carregar um arquivo em um objeto Document e Aspose.Words não puder reconhecer o formato do arquivo ou o formato não for suportado, Aspose.Words lançará uma exceção. Você pode capturar essas exceções e analisá-las, mas Aspose.Words também fornece o método DetectFileFormat que nos permite determinar rapidamente o formato do arquivo sem carregar um documento com possíveis exceções. Este método retorna um objeto FileFormatInfo que contém as informações detectadas sobre o tipo de arquivo.

Verificar A Compatibilidade Do Formato Dos Ficheiros

Podemos verificar a compatibilidade de formatos de todos os ficheiros da pasta seleccionada e classificá-los por formato nas subpastas correspondentes.

Como estamos lidando com conteúdo em uma pasta, a primeira coisa que precisamos fazer é obter uma coleção de todos os arquivos nesta pasta usando o método GetFiles da classe Directory (do namespace System.IO).

O exemplo de código a seguir mostra como obter uma lista de todos os arquivos na pasta:

Quando todos os arquivos são coletados, o restante do trabalho é feito pelo método DetectFileFormat, que verifica o formato do arquivo.

O exemplo de código a seguir mostra como iterar sobre a lista coletada de arquivos, verificar o formato de cada arquivo e mover cada arquivo para a pasta apropriada:

Os arquivos são movidos para subpastas apropriadas usando o método Move da classe File, do mesmo namespace System.IO.

Os seguintes ficheiros são utilizados no exemplo acima. O nome do ficheiro está à esquerda e a sua descrição está à direita:

Grupo de Ficheiros Documento De Entrada Tipo
Formatos de ficheiro suportados Test File (Doc).doc Microsoft Word 95/6.0 ou Microsoft Word 97 – 2003 documento.
Test File (Dot).dot Modelo Microsoft Word 95/6.0 ou Microsoft Word 97 – 2003.
Test File (Docx).docx Office abrir XML WordprocessingML documento sem macros.
Test File (Docm).docm Office abrir XML WordprocessingML documento com macros.
Test File (Dotx).dotx Escritório aberto XML WordprocessingML modelo.
Test File (Dotm).dotm Office abrir XML WordprocessingML modelo com macros.
Test File (XML).xml FlatOPC OOXML Documento.
Test File (RTF).rtf Documento em formato Rich Text.
Test File (WordML).xml Microsoft Word documento de 2003 WordprocessingML.
Test File (HTML).html HTML documento.
Test File (MHTML).mhtml MHTML (arquivo Web) documento.
Test File (Odt).odt OpenDocument Texto (OpenOffice Escritor).
Test File (Ott).ott OpenDocument Modelo De Documento.
Test File (DocPreWord60).doc Microsoft Word 2.0 documento.
Documentos encriptados Test File (Enc).doc Documento encriptado Microsoft Word 95 / 6.0 ou Microsoft Word 97 – 2003.
Test File (Enc).docx Escritório encriptado Abrir XML WordprocessingML documento.
Formatos de ficheiro não suportados Test File (JPG).jpg JPEG ficheiro de imagem.