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é
FromFilemetoda.
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.