OLM Klasörlerinde Gezinti
Bir OLM dosyası verilerini bir klasör ağacına düzenler, her biri bir OlmFolder object. Bu makale, klasör hiyerarşisini nasıl enumerate edeceğinizi, isme göre belirli bir klasörü nasıl alacağınızı, alt klasörlerde nasıl gezineceğinizi ve klasör yollarını nasıl okuyacağınızı gösterir.
Klasör Hiyerarşisini Al
Dosya açıldıktan sonra, dizin yapısına şu aracılığıyla erişin FolderHierarchy özellik. Bu özellik bir liste döndürür: OlmFolder objeler, OLM dosyasındaki üst düzey dizini temsil eder. Daha derine gitmek için şunu okuyun SubFolders her klasörün alt dizinlerini döndüren property. Bu iki üye sayesinde tüm hiyerarşiyi dolaşabilirsiniz.
Aşağıdaki örnek tüm klasörleri hiyerarşik sırayla yazdırır:
using (var olm = new OlmStorage(fileName))
{
PrintAllFolders(olm.FolderHierarchy, string.Empty);
}
private void PrintAllFolders(IEnumerable<OlmFolder> folderHierarchy, string indent)
{
foreach (var folder in folderHierarchy)
{
Console.WriteLine($"{indent}{folder.Name}");
PrintAllFolders(folder.SubFolders, indent + "-");
}
}
FolderHierarchy ve FromFile Metodu
Dosyayı açma şekliniz, FolderHierarchy şöyle davranır:
- Dosyayı yapıcı ile açtığınızda, FolderHierarchy property otomatik olarak başlatılır.
- Dosyayı şu ile açtığınızda FromFile metodu,
FolderHierarchyvarsayılan olarak başlatılmaz venull. Bu durumda, şu methodu çağırın GetFolders methodu tamamen hiyerarşiyi başlatmak ve dizin listesini almak için kullanın:
using (var olm = OlmStorage.FromFile(fileName))
{
var folders = olm.GetFolders();
}
İsme Göre Klasör Al
İsme göre tek bir klasör almak için şu methodu çağırın GetFolder method. Klasör adını ilk argüman olarak, arama sırasında büyük/küçük harf duyarlılığının göz ardı edilip edilmeyeceğini belirten bir boolean’ı ikinci argüman olarak geçirin.
using (var olm = OlmStorage.FromFile(fileName))
{
// get the Inbox folder by name, ignoring case
OlmFolder folder = olm.GetFolder("Inbox", true);
}
İsme Göre Alt Klasör Al
Her OlmFolder aynı zamanda bir alt klasörü doğrudan GetSubFolder method. Alt klasör adını ve büyük/küçük harf duyarlılığının göz ardı edilip edilmeyeceğini geçirin. Bu, zaten bir üst klasörünüz olduğunda ve tüm hiyerarşiyi yeniden taramadan aşağı inmeyi istediğinizde faydalıdır.
using (var olm = OlmStorage.FromFile(fileName))
{
OlmFolder inbox = olm.GetFolder("Inbox", true);
// get a sub-folder of Inbox by name
OlmFolder archive = inbox.GetSubFolder("Archive", true);
if (archive != null)
{
Console.WriteLine($"Found sub-folder: {archive.Name}");
}
}
Klasör Yollarını Al
Tam klasör yolunu şu aracılığıyla okuyabilirsiniz OlmFolder.Path property. Aşağıdaki snippet, dosyadaki her klasörün yolunu yazdırır:
using (var storage = new OlmStorage("SampleOLM.olm"))
{
PrintPath(storage.FolderHierarchy);
}
public static void PrintPath(IEnumerable<OlmFolder> folders)
{
foreach (OlmFolder folder in folders)
{
// print the current folder path
Console.WriteLine(folder.Path);
PrintPath(folder.SubFolders);
}
}