Abrindo Arquivos OLM
Aspose.Email para .NET representa um arquivo de armazenamento Outlook for Mac com o OlmStorage classe. Este artigo mostra como abrir um arquivo OLM a partir de um caminho ou de um stream, e como carregar com segurança um arquivo que pode estar corrompido.
Abrir um Arquivo OLM
Um arquivo OLM pode ser aberto de duas maneiras:
- usando um construtor;
- usando o estático
FromFilemétodo.
Há uma diferença de comportamento entre essas duas abordagens que afeta como a hierarquia de pastas é inicializada. Consulte Navegando nas Pastas OLM para detalhes.
Usando o Construtor
Para abrir um arquivo, chame o construtor da OlmStorage classe e passe o nome completo do arquivo como argumento. Porque OlmStorage implementa IDisposable, envolva‑o em um using declaração para que o manipulador de arquivo subjacente seja liberado quando terminar.
var fileName = "MyStorage.olm";
using (var olm = new OlmStorage(fileName))
{
// work with the storage
}
Usando o Método Estático FromFile
Para abrir um arquivo, use o estático FromFile método e passar o nome completo do arquivo como argumento:
var fileName = "MyStorage.olm";
using (var olm = OlmStorage.FromFile(fileName))
{
// work with the storage
}
Abrir um Arquivo OLM a partir de um Stream
Quando os dados OLM não vêm de um caminho local — por exemplo, são recebidos de um banco de dados, de um recurso de rede ou de um armazenamento na nuvem — você pode abri‑los diretamente de um Stream. Use o OlmStorage(Stream) construtor ou o estático FromStream método.
using (var stream = File.OpenRead("MyStorage.olm"))
using (var olm = new OlmStorage(stream))
{
// work with the storage
}
O método estático funciona da mesma forma:
using (var stream = File.OpenRead("MyStorage.olm"))
using (var olm = OlmStorage.FromStream(stream))
{
// work with the storage
}
Abrir um Arquivo OLM Corrompido
Se um arquivo pode estar parcialmente corrompido, ainda é possível extrair o máximo de dados possível sem parar no primeiro erro. Para isso, crie o OlmStorage instância com o OlmStorage(TraversalExceptionsCallback callback) construtor, então carregue o arquivo com o Load método em vez do FromFile.
O callback recebe as exceções geradas durante o carregamento e a travessia, permitindo que você registre ou ignore‑as. O Load método retorna true se o arquivo foi carregado com sucesso e a travessia for possível, e false se o arquivo estiver muito corrompido para percorrer.
using (var olm = new OlmStorage((exception, id) =>
{
// Exception handling code.
Console.WriteLine($"Failed to process item '{id}': {exception.Message}");
}))
{
if (olm.Load(fileName))
{
// The file was loaded and can be traversed.
var folderHierarchy = olm.GetFolders();
}
else
{
Console.WriteLine("The OLM file is corrupted and cannot be traversed.");
}
}
Para um exemplo completo de extração de itens de um arquivo corrompido, veja Lendo e Extraindo Mensagens OLM.