我终于设法弄清楚如何创建收件箱,发送物品,日历和物品的物品数量。联系人,但我有文件夹计数的问题。
假设我的邮箱中创建了5个文件夹,每个文件夹中有2个子文件夹。当我运行此代码时,它会计算5个文件夹,而不是所有文件夹和子文件夹,它们等于15个文件夹。
我猜一个foreach声明或者其他什么,但我还是一个新词: - )
#region Run Item Count
Microsoft.Office.Interop.Outlook.Application app = null;
Microsoft.Office.Interop.Outlook._NameSpace ns = null;
private void btnRunItemCount_Click(object sender, EventArgs e)
{
app = new Microsoft.Office.Interop.Outlook.Application();
ns = app.GetNamespace("MAPI");
MAPIFolder oInbox = this.ns.GetDefaultFolder(OlDefaultFolders.olFolderInbox);
tbInboxItemCount.Text = oInbox.Items.Count.ToString();
MAPIFolder oSentItems = this.ns.GetDefaultFolder(OlDefaultFolders.olFolderSentMail);
tbSentMailItemCount.Text = oSentItems.Items.Count.ToString();
MAPIFolder oCalendar = this.ns.GetDefaultFolder(OlDefaultFolders.olFolderCalendar);
tbCalendarItemCount.Text = oCalendar.Items.Count.ToString();
MAPIFolder oContacts = this.ns.GetDefaultFolder(OlDefaultFolders.olFolderContacts);
tbContactsItemCount.Text = oContacts.Items.Count.ToString();
MAPIFolder oFolder = this.ns.GetDefaultFolder(OlDefaultFolders.olFolderInbox);
tbFolderItemCount.Text = oInbox.Folders.Count.ToString();
}
#endregion
感谢您的任何帮助!丹
答案 0 :(得分:2)
您需要递归处理以Namespace.Folders开头的所有文件夹。 在我的头顶:
int allitems = CountFolders(ns.Folders);
...
private int CountFolders(文件夹文件夹)
{
int c = folders.count;
foreach(文件夹中的MAPIFolder文件夹)
{
c + = CountFolders(folder.Folders);
}
返回c;
}