我正在尝试查找特定的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
答案 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;
}
}