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