Mở Tập tin OLM
Aspose.Email cho .NET đại diện cho tệp lưu trữ Outlook cho Mac bằng OlmStorage lớp. Bài viết này trình bày cách mở tệp OLM từ đường dẫn hoặc luồng, và cách tải tệp một cách an toàn khi có khả năng bị hỏng.
Mở Tệp OLM
Một tệp OLM có thể được mở theo hai cách:
- sử dụng hàm khởi tạo;
- sử dụng tĩnh
FromFilephương thức.
Có một sự khác biệt về hành vi giữa hai cách tiếp cận này ảnh hưởng đến cách khởi tạo cây thư mục. Xem Duyệt Thư mục OLM để biết chi tiết.
Sử dụng Hàm Khởi Tạo
Để mở tệp, gọi hàm khởi tạo của OlmStorage lớp và truyền tên tệp đầy đủ làm đối số. Vì OlmStorage triển khai IDisposable, bao bọc nó trong một using câu lệnh để handle tệp cơ bản được giải phóng khi bạn hoàn thành.
var fileName = "MyStorage.olm";
using (var olm = new OlmStorage(fileName))
{
// work with the storage
}
Sử dụng Phương thức Tĩnh FromFile
Để mở tệp, sử dụng tĩnh FromFile phương thức và truyền tên tệp đầy đủ làm đối số:
var fileName = "MyStorage.olm";
using (var olm = OlmStorage.FromFile(fileName))
{
// work with the storage
}
Mở Tệp OLM từ Luồng
Khi dữ liệu OLM không đến từ đường dẫn cục bộ - ví dụ, nó được nhận từ cơ sở dữ liệu, tài nguyên mạng hoặc lưu trữ đám mây - bạn có thể mở trực tiếp từ một Stream. Sử dụng OlmStorage(Stream) hàm khởi tạo hoặc tĩnh FromStream phương thức.
using (var stream = File.OpenRead("MyStorage.olm"))
using (var olm = new OlmStorage(stream))
{
// work with the storage
}
Phương thức tĩnh hoạt động tương tự:
using (var stream = File.OpenRead("MyStorage.olm"))
using (var olm = OlmStorage.FromStream(stream))
{
// work with the storage
}
Mở Tệp OLM Bị Hỏng
Nếu tệp có thể bị hỏng một phần, bạn vẫn có thể trích xuất càng nhiều dữ liệu càng tốt mà không dừng lại khi gặp lỗi đầu tiên. Để làm điều này, tạo OlmStorage đối tượng với OlmStorage(TraversalExceptionsCallback callback) hàm khởi tạo, sau đó tải tệp bằng Load thay vì FromFile.
Hàm callback nhận các ngoại lệ phát sinh trong quá trình tải và duyệt, do đó bạn có thể ghi log hoặc bỏ qua chúng. Phương Load phương thức trả về true nếu tệp đã tải thành công và có thể duyệt, và false nếu tệp quá hỏng để duyệt.
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.");
}
}
Đối với ví dụ hoàn chỉnh về việc trích xuất mục từ tệp bị hỏng, xem Đọc và Trích xuất Tin nhắn OLM.