使用C#和GetFolderFromID EntryIdStore从Outlook获取文件夹

geo*_*off 1 outlook

我想用c#在outlook中获取一个特定的文件夹.其他人在此处遇到相同问题使用Outlook API访问特定文件夹,但在使用Folders集合时,我不知道如何通过文件夹集合.我的意思是,我已经查看了Folders集合返回的对象类型,它看起来像是一个Folders对象.但是当我尝试在循环中使用它时,它会给我一个无效的强制转换异常.我也希望我可以使用GetFolderFromID方法为它提供文件夹的字符串名称,但是也不想工作...但我也找不到如何使用它的例子所以我不确定我正确编码.这是我尝试过的一个例子.任何人都知道如何获取与Inbox文件夹位于同一级别的Processed文件夹?谢谢.

        MAPIFolder oProcessed = null;
        foreach (var folder in oNS.Folders)
            if (folder.ToString() == "Processed")
            {
                oProcessed = (MAPIFolder)folder;
            }

        if (oProcessed == null)
            throw new Exception("Missing processed folder.");
Run Code Online (Sandbox Code Playgroud)

76m*_*mel 5

你需要掌握根级邮箱文件夹

 Outlook.MAPIFolder rootFolder=  Application.Session.DefaultStore.GetRootFolder();
Run Code Online (Sandbox Code Playgroud)

然后遍历rootFolder文件夹集合检查名称

Outlook.MAPIFolder processedFolder = null;
          foreach (Outlook.MAPIFolder folder in rootFolder.Folders)
          {
              if (folder.Name == "Processed")
              {
                  processedFolder = folder;
                  break;
              }
          }
Run Code Online (Sandbox Code Playgroud)

查看http://msdn.microsoft.com/en-us/library/bb176810.aspx,了解API.

马库斯