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. |