Mag*_*num 4 c# outlook vsto outlook-2010
我正在通过以下方式获取我的默认收件箱文件夹 inboxFolder = Globals.ThisAddIn.Application.Session.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderInbox
在我的代码的其他地方,我开始执行 foreach 循环以从这些 MailItems 中提取我想要的特定信息
foreach (var item in this.inboxFolder.Items)
{
Outlook.MailItem mailItem = (Outlook.MailItem)item;
//.... doing stuff here
string SenderEmail = mailItem.SenderEmailAddress;
string SenderName = mailItem.SenderName;
string FolderLocation = mailItem.???; //how to retrieve folder location?
//.... more stuff here
}
Run Code Online (Sandbox Code Playgroud)
例如: 用户可能创建了一个名为“Test”的子文件夹,如下所示。

小智 7
谢谢各位大侠指点。但是,我最初在实施时遇到了一些麻烦。这是我解决它的方法,以防万一有人面临同样的问题。
Outlook.MAPIFolder parentFolder = mailItemToDelete.Parent as Outlook.MAPIFolder;
string FolderLocation = parentFolder.FolderPath;
Run Code Online (Sandbox Code Playgroud)
Parent 对象是动态的,因此会导致问题。
你是说文件夹路径吗?使用 MAPIFolder.FullFolderPath。如果您只需要名称,则可以使用 MAPIFoldert.Name。
另请记住,文件夹中所有项目的值都相同,因此没有理由在循环的每个步骤上对其进行评估。