2012-05-03 15 views
8

私はかなり長い間、すべてのOutlookフォルダのリストを取得する方法を見つけようとしていますが、既定のフォルダ(つまり、受信トレイ、送信トレイ、送信済み)アイテム、削除されたアイテムなど)。自分で作成した個人用またはカスタムフォルダがある場合はどうなりますか?たとえば、 "領収書"と呼ばれるOutlookにフォルダを追加すると、これは既定のフォルダではなく、 "既定のフォルダ"の下に表示されません。どのように私はMicrosoft.Office.Interop.Outlookを使用してこのフォルダにアクセスするだろうC#で。すべてのOutlookのフォルダとサブフォルダのリストを取得

特定の新しいフォルダから任意の新しいメッセージをスプレッドシートに自動的にダウンロードする方法を作成しようとしています。私はすべてのフォルダのリストを取得できたら、選択したフォルダからのみメッセージを取得できます。

Outlook._Folders oFolders;   
Outlook.MAPIFolder oPublicFolder = olNS.GetDefaultFolder(Outlook.OlDefaultFolders.olFolder‌​Inbox).Parent; 
foreach (Outlook.MAPIFolder Folder in oFolders) 
+1

のようなあなたのコードを見て、今そのフォルダのみの一部を取得んか? – sarnold

+0

さて、コードを投稿しようとしましたが、私は限られています。基本的には、これまでのことです(モデレーター、これを編集できますか?):Microsoft.Office.Interop.Outlook._Folders oFolders; Microsoft.Office.Interop.Outlook.MAPIFolder oPublicFolder = olNS.GetDefaultFolder(Microsoft.Office.Interop.Outlook.OlDefaultFolders.olFolderInbox).Parent; foreach(Microsoft.Office.Interop.Outlook.MAPIFolder oFolders内のフォルダ)これは私の正確なコードは、私は(申し訳ありません)コピーした凝縮されたバージョン。 – mtlca401

答えて

8

パブリックフォルダを含むOutlookのすべてのフォルダが印刷されるはずです。

foreach (MAPIFolder folder in olNS.Folders) 
{ 
    GetFolders(folder); 
} 

public void GetFolders(MAPIFolder folder) 
{ 
    if (folder.Folders.Count == 0) 
    { 
     Console.WriteLine(folder.FullFolderPath); 
    } 
    else 
    { 
     foreach (MAPIFolder subFolder in folder.Folders) 
     { 
       GetFolders(subFolder); 
     } 
    } 
} 
関連する問題