Öppna OLM-filer

Aspose.Email för .NET representerar en Outlook för Mac‑lagringsfil med OlmStorage klass. Denna artikel visar hur man öppnar en OLM‑fil från en sökväg eller en ström, och hur man säkert laddar en fil som kan vara korrupt.

Öppna en OLM‑fil

En OLM‑fil kan öppnas på två sätt:

  • använda en konstruktor;
  • använda den statiska FromFile metod.

Det finns en skillnad i beteende mellan dessa två tillvägagångssätt som påverkar hur mapphierarkin initieras. Se Navigera i OLM-mappar för detaljer.

Använda konstruktorn

För att öppna en fil, anropa konstruktorn för OlmStorage klass och skicka hela filnamnet som argument. Eftersom OlmStorage implementerar IDisposable, omslut den i en using sats så att den underliggande filhandtaget släpps när du är klar.

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

Använda den statiska FromFile‑metoden

För att öppna en fil, använd den statiska FromFile metod och skicka hela filnamnet som argument:

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

Öppna en OLM‑fil från en ström

När OLM‑data inte kommer från en lokal sökväg – till exempel, den hämtas från en databas, en nätverksresurs eller molnlagring – kan du öppna den direkt från en Stream. Använd OlmStorage(Stream) konstruktorn eller den statiska FromStream metod.

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

Den statiska metoden fungerar på samma sätt:

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

Öppna en korrupt OLM‑fil

Om en fil kan vara delvis korrupt kan du fortfarande extrahera så mycket data som möjligt utan att stoppa vid första felet. Gör så här, skapa OlmStorage instans med OlmStorage(TraversalExceptionsCallback callback) konstruktorn, ladda sedan filen med Load metoden istället för FromFile.

Återuppringningen mottar de undantag som uppstår under laddning och traversal, så att du kan logga eller ignorera dem. Load metod returnerar true om filen har lästs in korrekt och traversering är möjlig, och false om filen är för korrupt för att traverseras.

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 ett komplett exempel på att extrahera objekt från en korrupt fil, se Läsa och extrahera OLM-meddelanden.