פתיחת קובצי OLM

Aspose.Email for .NET מייצגת קובץ אחסון Outlook for Mac באמצעות OlmStorage מחלקה. מאמר זה מציג כיצד לפתוח קובץ OLM ממסלול או מ‑Stream, וכיצד לטעון קובץ שעשוי להיות פגום בצורה בטוחה.

פתיחת קובץ OLM

קובץ OLM ניתן לפתיחה בשתי דרכים:

  • שימוש בבנאי;
  • שימוש ב‑static FromFile שיטה.

קיימת הבדל בהתנהגות בין שתי הגישות שמשפיע על איך היררכיית התיקיות מאותחלת. ראה ניווט בתיקיות OLM לפרטים נוספים.

שימוש בבנאי

לפתיחת קובץ, קרא לבנאי של OlmStorage מחלקה והעבר את שם הקובץ המלא כארגומנט. משום ש‑ OlmStorage מיישמת IDisposable, עטוף אותו ב‑ using הצהרה כך שהידית הקובץ הבסיסית תישחרר כשסיימת.

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

שימוש במתודת ה‑Static FromFile

לפתיחת קובץ, השתמש ב‑static FromFile מתודה והעבר את שם הקובץ המלא כארגומנט:

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

פתיחת קובץ OLM מ‑Stream

כאשר נתוני OLM אינם מגיעים ממסלול מקומי – לדוגמה, הם מתקבלים ממסד נתונים, משאב רשת או אחסון בענן – ניתן לפתוח אותם ישירות מ‑ Stream. השתמש ב‑ OlmStorage(Stream) הקונסטרוקטור או ה‑static FromStream שיטה.

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

מתודת ה‑static פועלת באותו אופן:

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

פתיחת קובץ OLM פגום

אם קובץ עלול להיות חלקית פגום, עדיין ניתן לחלץ את מירב הנתונים מבלי לעצור בשגיאה הראשונה. לשם כך, צור את ה‑ OlmStorage מופע עם ה‑ OlmStorage(TraversalExceptionsCallback callback) בנייה, ואז טען את הקובץ בעזרת ה‑ Load מתודה במקום ה‑ FromFile.

ה‑callback מקבל את החריגות שהתרחשו במהלך הטעינה והמעבר, ולכן ניתן לרשום אותן או להתעלם מהן. ה‑ 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.