Otwieranie plików OLM

Aspose.Email dla .NET reprezentuje plik przechowywania Outlook dla Mac za pomocą OlmStorage klasa. Ten artykuł pokazuje, jak otworzyć plik OLM z ścieżki lub strumienia oraz jak bezpiecznie ładować plik, który może być uszkodzony.

Otwórz plik OLM

Plik OLM można otworzyć na dwa sposoby:

  • używając konstruktora;
  • używając statycznego FromFile metoda.

Istnieje różnica w zachowaniu między tymi dwoma podejściami, która wpływa na inicjalizację hierarchii folderów. Zobacz Nawigacja po folderach OLM po szczegóły.

Używanie konstruktora

Aby otworzyć plik, wywołaj konstruktor OlmStorage klasę i przekazać pełną nazwę pliku jako argument. Ponieważ OlmStorage implementuje IDisposable, umieść go w using instrukcji, aby uchwyt do pliku został zwolniony po zakończeniu pracy.

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

Używanie statycznej metody FromFile

Aby otworzyć plik, użyj statycznego FromFile metody i przekazać pełną nazwę pliku jako argument:

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

Otwórz plik OLM ze strumienia

Gdy dane OLM nie pochodzą ze ścieżki lokalnej – na przykład są pobierane z bazy danych, zasobu sieciowego lub przechowywania w chmurze – możesz otworzyć je bezpośrednio z Stream. Użyj OlmStorage(Stream) konstruktor lub statyczny FromStream metoda.

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

Statyczna metoda działa w ten sam sposób:

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

Otwórz uszkodzony plik OLM

Jeśli plik może być częściowo uszkodzony, nadal możesz wyodrębnić jak najwięcej danych bez zatrzymywania się na pierwszym błędzie. W tym celu utwórz OlmStorage instancji z OlmStorage(TraversalExceptionsCallback callback) konstruktora, a następnie załaduj plik przy użyciu Load zamiast FromFile.

Wywołanie zwrotne otrzymuje wyjątki podnoszone podczas ładowania i przeglądania, więc możesz je zalogować lub zignorować. Metoda Load metoda zwraca true jeśli plik został załadowany pomyślnie i przeszukiwanie jest możliwe, oraz false jeśli plik jest zbyt uszkodzony, aby go przeglądać.

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

Pełen przykład wyodrębniania elementów z uszkodzonego pliku znajdziesz w Odczytywanie i wyodrębnianie wiadomości OLM.