OLM‑Dateien öffnen

Aspose.Email für .NET stellt eine Outlook‑for‑Mac‑Speicherdatei dar mit der OlmStorage Klasse. Dieser Artikel zeigt, wie man eine OLM‑Datei von einem Pfad oder Stream öffnet und wie man eine möglicherweise beschädigte Datei sicher lädt.

Öffnen einer OLM‑Datei

Eine OLM‑Datei kann auf zwei Arten geöffnet werden:

  • Verwendung eines Konstruktors;
  • Verwendung der statischen FromFile Methode.

Es gibt einen Unterschied im Verhalten dieser beiden Ansätze, der beeinflusst, wie die Ordnerhierarchie initialisiert wird. Siehe Durch OLM‑Ordner navigieren für weitere Details.

Verwendung des Konstruktors

Um eine Datei zu öffnen, rufen Sie den Konstruktor der OlmStorage Klasse und übergeben den vollständigen Dateinamen als Argument. Da OlmStorage implementiert IDisposable, wickeln Sie sie in ein using Anweisung, damit der zugrundeliegende Datei‑Handle freigegeben wird, wenn Sie fertig sind.

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

Verwendung der statischen FromFile‑Methode

Um eine Datei zu öffnen, verwenden Sie die statische FromFile Methode und übergeben den vollständigen Dateinamen als Argument:

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

Öffnen einer OLM‑Datei aus einem Stream

Wenn die OLM‑Daten nicht von einem lokalen Pfad stammen – zum Beispiel, weil sie aus einer Datenbank, einer Netzwerkressource oder einem Cloud‑Speicher kommen – können Sie sie direkt aus einem Stream. Verwenden Sie die OlmStorage(Stream) Konstruktor oder die statische FromStream Methode.

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

Die statische Methode funktioniert identisch:

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

Öffnen einer beschädigten OLM‑Datei

Wenn eine Datei teilweise beschädigt sein könnte, können Sie trotzdem so viele Daten wie möglich extrahieren, ohne beim ersten Fehler anzuhalten. Erzeugen Sie dafür OlmStorage Instanz mit dem OlmStorage(TraversalExceptionsCallback callback) Konstruktor, dann laden Sie die Datei mit der Load Methode statt FromFile.

Der Callback erhält die während des Ladens und Durchlaufens ausgelösten Ausnahmen, sodass Sie diese protokollieren oder ignorieren können. Die Load Methode gibt true wenn die Datei erfolgreich geladen wurde und Traversierung möglich ist, und false falls die Datei zu stark beschädigt ist, um sie zu durchlaufen.

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

Für ein vollständiges Beispiel zum Extrahieren von Elementen aus einer beschädigten Datei, siehe OLM‑Nachrichten lesen und extrahieren.