Apertura di file OLM

Aspose.Email per .NET rappresenta un file di archiviazione Outlook per Mac con il OlmStorage classe. Questo articolo mostra come aprire un file OLM da un percorso o da uno stream, e come caricare in sicurezza un file che potrebbe essere danneggiato.

Apri un File OLM

Un file OLM può essere aperto in due modi:

  • usando un costruttore;
  • usando il metodo statico FromFile metodo.

Esiste una differenza di comportamento tra questi due approcci che influisce su come viene inizializzata la gerarchia delle cartelle. Vedi Navigazione delle cartelle OLM per i dettagli.

Usando il Costruttore

Per aprire un file, chiama il costruttore della OlmStorage classe e passa il nome completo del file come argomento. Poiché OlmStorage implementa IDisposable, avvolgilo in un using istruzione in modo che il handle del file sottostante venga rilasciato al termine.

var fileName = "MyStorage.olm";
using (var olm = new OlmStorage(fileName))
{
    // work with the storage
}

Usando il Metodo Statico FromFile

Per aprire un file, usa il metodo statico FromFile metodo e passare il nome completo del file come argomento:

var fileName = "MyStorage.olm";
using (var olm = OlmStorage.FromFile(fileName))
{
    // work with the storage
}

Apri un File OLM da uno Stream

Quando i dati OLM non provengono da un percorso locale - ad esempio, sono ricevuti da un database, una risorsa di rete o uno storage cloud - è possibile aprirli direttamente da un Stream. Usa il OlmStorage(Stream) costruttore o il metodo statico FromStream metodo.

using (var stream = File.OpenRead("MyStorage.olm"))
using (var olm = new OlmStorage(stream))
{
    // work with the storage
}

Il metodo statico funziona allo stesso modo:

using (var stream = File.OpenRead("MyStorage.olm"))
using (var olm = OlmStorage.FromStream(stream))
{
    // work with the storage
}

Apri un File OLM Corrotto

Se un file può essere parzialmente corrotto, è comunque possibile estrarre quanti più dati possibile senza fermarsi al primo errore. Per fare ciò, crea il OlmStorage istanza con il OlmStorage(TraversalExceptionsCallback callback) costruttore, quindi carica il file con il Load metodo invece del FromFile.

Il callback riceve le eccezioni sollevate durante il caricamento e l’attraversamento, così puoi registrarle o ignorarle. Il Load metodo restituisce true se il file è stato caricato correttamente e la traversa è possibile, e false se il file è troppo corrotto per essere attraversato.

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.");
    }
}

Per un esempio completo di estrazione di elementi da un file danneggiato, vedi Lettura ed estrazione di messaggi OLM.