Отваряне на OLM файлове
Aspose.Email за .NET представя файл за съхранение на Outlook за Mac с OlmStorage клас. Тази статия показва как да се отвори OLM файл от път или поток и как безопасно да се зареди файл, който може да е повреден.
Отваряне на OLM файл
OLM файл може да се отвори по два начина:
- използвайки конструктор;
- използвайки статичния
FromFileметод.
Съществува разлика в поведението между тези два подхода, която засяга начина, по който се инициализира йерархията на папките. Вижте Навигация в OLM папки за подробности.
Използване на конструктора
За отваряне на файл, извикайте конструктора на OlmStorage клас и предайте пълното име на файла като аргумент. Защото OlmStorage изпълнява IDisposable, загърнете го в using израз, за да бъде освободен основният файлов дескриптор след приключване.
var fileName = "MyStorage.olm";
using (var olm = new OlmStorage(fileName))
{
// work with the storage
}
Използване на статичния метод FromFile
За отваряне на файл, използвайте статичния FromFile метод и предайте пълното име на файла като аргумент:
var fileName = "MyStorage.olm";
using (var olm = OlmStorage.FromFile(fileName))
{
// work with the storage
}
Отваряне на OLM файл от поток
Когато OLM данните не идват от локален път – например, получени от база данни, мрежов ресурс или облачно хранилище – можете да го отворите директно от Stream. Използвайте OlmStorage(Stream) конструктор или статичният FromStream метод.
using (var stream = File.OpenRead("MyStorage.olm"))
using (var olm = new OlmStorage(stream))
{
// work with the storage
}
Статичният метод работи по същия начин:
using (var stream = File.OpenRead("MyStorage.olm"))
using (var olm = OlmStorage.FromStream(stream))
{
// work with the storage
}
Отваряне на повреден OLM файл
Ако файлът може да бъде частично повреден, все още можете да извлечете колкото се може повече данни без да спирате при първата грешка. За целта създайте OlmStorage инстанция с OlmStorage(TraversalExceptionsCallback callback) конструктор, след това заредете файла с Load вместо FromFile.
Обратният повик получава изключенията, възникнали по време на зареждане и обхождане, така че можете да ги регистрирате или игнорирате. Методът Load методът връща true ако файлът е зареден успешно и обходът е възможен, и false ако файлът е твърде повреден за обхождане.
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.");
}
}
За пълен пример за извличане на елементи от повреден файл, вижте Четене и извличане на OLM съобщения.