我正在用C#編寫一段代碼,通過Outlook Interop從Outlook獲取所有可寫的日曆。 Outlook中的日曆只是默認項目類型爲OlItemType.olAppointmentItem
的Outlook文件夾。但是,如果您將Hotmail帳戶添加到Outlook,則總是隻有隻讀日曆,例如生日日曆。Outlook Interop:有沒有辦法檢查一個Outlook文件夾是否只讀
有沒有辦法檢測這些只讀日曆?
我正在用C#編寫一段代碼,通過Outlook Interop從Outlook獲取所有可寫的日曆。 Outlook中的日曆只是默認項目類型爲OlItemType.olAppointmentItem
的Outlook文件夾。但是,如果您將Hotmail帳戶添加到Outlook,則總是隻有隻讀日曆,例如生日日曆。Outlook Interop:有沒有辦法檢查一個Outlook文件夾是否只讀
有沒有辦法檢測這些只讀日曆?
因此,它看起來像有沒有來檢查當前用戶有權限寫入專用方法前提是它可能不是交換文件夾。因此,最可靠的方式可能會嘗試創建和刪除虛擬物品:
try
{
((AppointmentItem)calendarFolder.Items.Add(OlItemType.olAppointmentItem)).Delete();
// Do whatever you need with this folder.
}
catch
{
// This probably means the folder is not writeable.
}
注意,項目類型需要匹配的文件夾默認的項目類型。
如果這些是交換賬戶,但是您特別提到了hotmail,那麼您可以輕鬆做到這一點,因此經過大量研究後,唯一的方法就是使用第三方插件或編寫您自己的MAPI/ACL庫。微軟從來沒有通過com命名空間使ACL可用。
每個人都在暗示贖回:http://www.dimastr.com/redemption/home.htm,你可以檢查出RDOACL功能,他們暴露在這裏:
生活在文件系統上的任何東西的一般答案是實際嘗試寫入它,然後處理異常,如果它失敗。否則,你只是在創造一個競爭條件。 –
這是我現在可以想到的唯一方法。我一直在使用下面的代碼來檢查它,但我不確定是否有更好的方法:'((AppointmentItem)folder.Items.Add(OlItemType.olAppointmentItem))。Delete()' –