การเปิดไฟล์ OLM

Aspose.Email for .NET แทนไฟล์ที่เก็บ Outlook for Mac ด้วย OlmStorage คลาส บทความนี้แสดงวิธีเปิดไฟล์ OLM จากพาธหรือสตรีม และวิธีโหลดไฟล์ที่อาจเสียหายอย่างปลอดภัย

เปิดไฟล์ OLM

ไฟล์ OLM สามารถเปิดได้สองวิธี:

  • โดยใช้คอนสตรักเตอร์;
  • โดยใช้สแตติก FromFile เมธอด.

มีความแตกต่างในการทำงานระหว่างสองวิธีนี้ที่ส่งผลต่อการกำหนดค่าโครงสร้างโฟลเดอร์ ดู การนำทางโฟลเดอร์ OLM สำหรับรายละเอียด

ใช้คอนสตรักเตอร์

เพื่อเปิดไฟล์ เรียกใช้คอนสตรักเตอร์ของ OlmStorage คลาสและส่งผ่านชื่อไฟล์เต็มเป็นอาร์กิวเมนต์ เนื่องจาก OlmStorage implements 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 instance พร้อมกับ 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.