Otevírání OLM souborů

Aspose.Email pro .NET představuje soubor úložiště Outlook for Mac pomocí OlmStorage třída. Tento článek ukazuje, jak otevřít soubor OLM z cesty nebo streamu a jak bezpečně načíst soubor, který může být poškozený.

Otevřít soubor OLM

Soubor OLM lze otevřít dvěma způsoby:

  • použití konstruktoru;
  • použití statické FromFile metoda.

Mezi těmito dvěma přístupy existuje rozdíl v chování, který ovlivňuje, jak je inicializována hierarchie složek. Viz Navigace v OLM složkách pro podrobnosti.

Použití konstruktoru

Pro otevření souboru zavolejte konstruktor OlmStorage třídu a předat úplný název souboru jako argument. Protože OlmStorage implementuje IDisposable, obalte jej do using instrukci tak, aby podkladové file‑handlové bylo uvolněno po dokončení.

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

Použití statické metody FromFile

Pro otevření souboru použijte statickou FromFile metody a předat úplný název souboru jako argument:

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

Otevřít soubor OLM ze streamu

Když data OLM nepocházejí z lokální cesty – například jsou získána z databáze, síťového zdroje nebo cloudového úložiště – můžete je otevřít přímo ze Stream. Použijte OlmStorage(Stream) konstruktor nebo statická FromStream metoda.

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

Statická metoda funguje stejným způsobem:

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

Otevřít poškozený soubor OLM

Pokud může být soubor částečně poškozený, můžete stále extrahovat co nejvíce dat bez zastavení při první chybě. K tomu vytvořte OlmStorage instance s OlmStorage(TraversalExceptionsCallback callback) konstruktora, pak načtěte soubor pomocí Load namísto FromFile.

Zpětné volání přijímá výjimky vyvolané během načítání a procházení, takže je můžete zaznamenat nebo ignorovat. Metoda Load metoda vrací true pokud byl soubor načten úspěšně a procházení je možné, a false pokud je soubor příliš poškozený pro procházení.

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

Pro kompletní příklad extrakce položek z poškozeného souboru viz Čtení a extrakce OLM zpráv.