ここにすべてのフォルダーの詳細が表示されます。今、「受信トレイの下のフォルダー」のみをリストすることを制限したかったのですが、実際には、受信ボックスの下にフォルダーをリストしたかったのです。 。の上 )
マイコード。
private IEnumerable<MAPIFolder> GetAllFolders(Folders folders)
{
foreach (MAPIFolder f in folders)
{
yield return f;
foreach (var subfolder in GetAllFolders(f.Folders))
{
yield return subfolder;
}
}
}
ボタンクリックイベント
private void button1_Click(object sender, EventArgs e)
{
Microsoft.Office.Interop.Outlook.Application oApp =
new Microsoft.Office.Interop.Outlook.Application();
Microsoft.Office.Interop.Outlook._NameSpace ns =
(Microsoft.Office.Interop.Outlook._NameSpace)oApp.GetNamespace("MAPI");
// in here i get the error "userd of unassign local variable".
// without this line code works fine and return all the Folders &
// Sub folders.
Microsoft.Office.Interop.Outlook.MAPIFolder oPublicFolder =
olNS.GetDefaultFolder(
Microsoft.Office.Interop.Outlook.OlDefaultFolders.olFolderInbox);
foreach (var f in GetAllFolders(ns.Folders))
{
//if (f == oPublicFolder) continue;
if (f.DefaultItemType == OlItemType.olMailItem)
{
string ff = f.Name;
//Some codings here
}
}
}
これは非常に単純なこともあるため、愚かな質問になることもあります。