Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/302.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# MAPI查找联系人和日历文件夹_C#_Outlook_Mapi - Fatal编程技术网

C# MAPI查找联系人和日历文件夹

C# MAPI查找联系人和日历文件夹,c#,outlook,mapi,C#,Outlook,Mapi,在我的outlook中,我有1个exchange连接和2个个人文件夹 我想从日历和联系人中提取所有项目,因此我使用: /** * Create outlook application */ Outlook.Application oApp = new Outlook.Application(); Outlook.NameSpace oNS = oApp.GetNamespac

在我的outlook中,我有1个exchange连接和2个个人文件夹

我想从日历和联系人中提取所有项目,因此我使用:

           /**
             * Create outlook application
             */
            Outlook.Application oApp = new Outlook.Application();
            Outlook.NameSpace oNS = oApp.GetNamespace("mapi");
            oNS.Logon(Missing.Value, Missing.Value, true, true);

            /**
             * Loop through all the folders
             */
            foreach (Outlook.MAPIFolder oFolder in oNS.Folders)
            {
                if (oFolder.Name == "Public Folders")
                {
                    break;
                }

                /**
                 * Get calendar items
                 */
                //Outlook.MAPIFolder oCalendar = oNS.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderCalendar);
                Outlook.MAPIFolder oCalendar = oFolder.Folders[5];
                Outlook.Items oCalendarItems = oCalendar.Items;

                //Outlook.MAPIFolder oContacts = oNS.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderContacts);
                Outlook.MAPIFolder oContacts = oFolder.Folders[7];
                Outlook.Items oContactItems = oContacts.Items;
但这是行不通的 文件夹[5]的

日历不总是5,有时是不同的值

我无法按名称找到这些项目 文件夹[“日历”]的

因为在荷兰语中,文件夹将命名为“议程”

我通常使用:
Outlook.MAPIFolder oCalendar=oNS.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderCalendar)


但是我只得到默认的日历。如何获取其他日历?

我认为您必须滚动查看文件夹列表,并查看返回您想要的类型的日历,返回olAppointmentItem和olContactItem的日历


马库斯

谢谢这正是我现在所做的:-)