C# Outlook收件箱文件夹父文件夹始终返回0个文件夹
我的办公室有问题,无法添加。每当我试图通过循环所有的电子邮件文件夹来获取他们的电子邮件时,我总是得到0个项目,我真的不知道为什么。这是我的密码:C# Outlook收件箱文件夹父文件夹始终返回0个文件夹,c#,outlook,vsto,mailitem,C#,Outlook,Vsto,Mailitem,我的办公室有问题,无法添加。每当我试图通过循环所有的电子邮件文件夹来获取他们的电子邮件时,我总是得到0个项目,我真的不知道为什么。这是我的密码: var inbox = Globals.ThisAddIn.Application.Session.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderInbox); if (inbox is Outlook.Folder) { if (inbox.Parent is Outlook.Folde
var inbox = Globals.ThisAddIn.Application.Session.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderInbox);
if (inbox is Outlook.Folder)
{
if (inbox.Parent is Outlook.Folder)
{
for (int i = (inbox.Parent as Outlook.Folder).Items.Count; i > 0; i--)
{
if ((inbox.Parent as Outlook.Folder).Items[i] is Outlook.MailItem)
{
if (((inbox.Parent as Outlook.Folder).Items[i] as Outlook.MailItem).Subject.ToString() == "test")
{
}
}
}
}
}
它通过前两个检查,但处于循环中
(inbox.Parent作为Outlook.Folder)。Items.Count
始终返回0,即使我的收件箱中有大量电子邮件。知道为什么会这样吗
//
当我尝试使用.Folders而不是.Items访问它们时,会像这样更改循环,但保留所有其他内容不变:
for (int i = (inbox.Parent as Outlook.Folder).Folders.Count; i > 0; i--){}
,我得到一个例外:
(inbox.Parent作为Outlook.Folder)。Folders.Count='(inbox.Parent作为Outlook.Folder)。Folders.Count'引发了“System.NullReferenceException”类型的异常
澄清一下:我们的目标是遍历每个文件夹,访问每个文件夹的第i封邮件,并检查其标题是否为“test”。我知道这个例子在上下文之外没有多大意义,所以让我们只关注会带来麻烦的部分,即正确计算所有文件夹的数量
//
我通过访问olFolderInbox,然后找到它的父文件夹来计算收件箱文件夹的数量,使一切变得过于复杂。虽然这样做可能是可行的,但通过这一简单的行也可以更轻松地完成:
var foldersCount = Globals.ThisAddIn.Application.Session.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderInbox).Folders.Count;
并通过FolderScont循环访问特定文件夹[i]。您似乎正在计算收件箱的父项。。。不是收件箱哦是的,因为我必须访问所有文件夹,而不仅仅是主收件箱。已编辑。对,但收件箱的父文件夹中通常没有项目……那么,如果不是通过收件箱父文件夹,如何访问所有文件夹?如果使用
文件夹
而不是项目
来获取父文件夹的子文件夹,该怎么办?