找不到特定的Outlook日历

时间:2011-11-30 00:51:59

标签: c#-3.0 automation outlook

我正在尝试查找特定的Outlook日历。我查看了Outlook addin: Get elements from a selected calendar的说明。

当我尝试使用此代码实现它时:

public static MAPIFolder GetTimeTrackingCalendar()
{
MAPIFolder result = null;
MAPIFolder calendars = (MAPIFolder)outlook.ActiveExplorer().Session.GetDefaultFolder(OlDefaultFolders.olFolderCalendar);
for (int i = 0; i < calendars.Folders.Count; i++)
{
    if (calendars.Folders[i].Name == "MyTimeTracker")
    {
        result = calendars.Folders[i];
        break;
    }
}
return result;

}

我收到一条错误,指出数组索引超出范围。检查日历对象,它们是两个文件夹但没有一个支持Name属性。我错过了演员吗?

谢谢,Bill N

1 个答案:

答案 0 :(得分:1)

仅供将来参考,Outlook(和其他Office自动化对象)使用基于1的索引而不是基于0的索引。这就是导致“数组索引越界”错误的原因。

像这样更改循环修复了它:

for (int i = 1; i <= calendars.Folders.Count; i++)
{
    if (calendars.Folders[i].Name == "MyTimeTracker")
    {
        result = calendars.Folders[i];
        break;
    }
}