2011-11-30 80 views
1

我正在嘗試查找特定的Outlook日曆。我已閱讀了此Outlook addin: Get elements from a selected calendar的說明。找不到特定的Outlook日曆

當我嘗試使用此代碼來實現它:

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屬性。我錯過演員?

謝謝你,比爾ñ

+1

它已經有一段時間(這就是爲什麼一個評論,而不是答案),但IIRC的迭代應該是從1開始的,而不是從零開始。雖然我可能是錯的。 :) –

+0

謝謝肯。就是這樣。我想知道爲什麼當我檢查日曆對象並查看兩個文件夾時,我沒有看到Name屬性。 –

回答

1

只是以供將來參考,展望(和其他辦公自動化對象)使用基於1爲基礎的指標,而不是0。這是導致「數組索引越界」錯誤的原因。

改變這樣的循環修復它:

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