9

很长一段时间以来,我一直试图弄清楚如何获取所有 Outlook 文件夹的列表,但只能获取默认文件夹的列表(即收件箱、发件箱、已发送邮件、已删除邮件等)。如果我有已创建的个人或自定义文件夹怎么办?例如,如果我向 Outlook 添加一个名为“Receipts”的文件夹,这将不是默认文件夹,也不会显示在“默认文件夹”下。如何在 c# 中使用 Microsoft.Office.Interop.Outlook 访问此文件夹。

我正在尝试创建一种方法来自动将某些新消息从任何给定文件夹下载到电子表格中。我想如果我可以获得所有文件夹的列表,那么我只能从所选文件夹中获取消息。

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

2 回答 2

11

This should print out all the folders in your outlook including your public folders.

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);
         }
    }
}
于 2012-05-24T07:53:54.097 回答
0

请参阅 MSDN“如何:枚举文件夹”:http: //msdn.microsoft.com/en-us/library/ff184607.aspx

于 2013-02-15T14:34:30.550 回答