การเปิดไฟล์ 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.