Detecte o formato do arquivo e verifique a compatibilidade do formato

Às vezes é necessário determinar o formato de um documento antes de abri-lo 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 geralmente produz documentos no formato RTF, mas lhes dá a extensão .doc.

Aspose.Words oferece a capacidade de obter informações sobre o tipo de arquivo para evitar uma exceção se você não tiver certeza de qual é o conteúdo real do arquivo.

Detectar formato de arquivo sem exceção

Ao lidar com vários documentos em vários formatos de arquivo, pode ser necessário separar os arquivos que podem ser processados pelo Aspose.Words daqueles que não podem. Você também pode querer saber por que alguns dos documentos não podem ser processados.

Se você tentar carregar um arquivo em um objeto Document e o Aspose.Words não conseguir reconhecer o formato do arquivo ou o formato não for compatível, o Aspose.Words lançará uma exceção. Você pode capturar essas exceções e analisá-las, mas o 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.

Verifique a compatibilidade do formato dos arquivos

Podemos verificar a compatibilidade de formato de todos os arquivos na pasta selecionada e classificá-los por formato nas subpastas correspondentes.

Como estamos lidando com o conteúdo de uma pasta, a primeira coisa que precisamos fazer é obter uma coleção de todos os arquivos desta 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 na lista de arquivos coletada, 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 arquivos a seguir são usados no exemplo acima. O nome do arquivo está à esquerda e sua descrição à direita:

Group de arquivos Documento de entrada Tipo
Formatos de arquivo suportados Arquivo de teste (Doc.doc) Documento Microsoft Word 95/6.0 ou Microsoft Word 97 – 2003.
Arquivo de teste (Dot).dot Modelo Microsoft Word 95/6.0 ou Microsoft Word 97 – 2003.
Arquivo de teste (Docx).docx Documento Office Open XML WordprocessingML sem macros.
Arquivo de teste (Docm).docm Documento Office Open XML WordprocessingML com macros.
Arquivo de teste (Dotx).dotx Modelo Office Open XML WordprocessingML.
Arquivo de teste (Dotm).dotm Modelo Office Open XML WordprocessingML com macros.
Arquivo de teste (XML).xml Documento FlatOPC OOXML.
Arquivo de teste (RTF).rtf Documento em formato Rich Text.
Arquivo de teste (WordML).xml Documento Microsoft Word 2003 WordprocessingML.
Arquivo de teste (HTML).html Documento HTML.
Arquivo de teste (MHTML).mhtml Documento MHTML (arquivo da Web).
Arquivo de teste (Odt).odt Texto OpenDocument (OpenOffice Writer).
Arquivo de teste (Ott).ott Modelo de documento OpenDocument.
Arquivo de teste (DocPreWord60).doc Documento Microsoft Word 2.0.
Documentos criptografados Arquivo de teste (Enc).doc Documento criptografado Microsoft Word 95/6.0 ou Microsoft Word 97 – 2003.
Arquivo de teste (Enc).docx Documento criptografado do Office Open XML WordprocessingML.
Formatos de arquivo não suportados Arquivo de teste (JPG).jpg Arquivo de imagem JPEG.