2014-08-30 55 views
0

我正在使用新的Office365 API(http://visualstudiogallery.msdn.microsoft.com/7e947621-ef93-4de7-93d3-d796c43ba34f) 使C#客戶端在線連接到Office365,特別是Exchange服務。 客戶可以通過授權的Office365用戶閱讀和發送郵件。 客戶端應用程序無法在根聯機交換目錄或任何子文件夾中創建新的(子)文件夾,儘管所有者已相應地設置了父文件夾權限(手動輸入https://outlook.office365。 COM/OWA /?境界= SomeCompany.onmicrosoft.com)。使用「Office365 API」的本地(C#)客戶端無法在聯機帳戶中創建郵件文件夾

我的源代碼:

Microsoft.Office365.Exchange.ExchangeClient XClient; 

//authorization, XClient can read/send mails.... 
IFolder newFolder = new Microsoft.Office365.Exchange.Folder(); 
newFolder.DisplayName = "someFolderName"; 
newFolder.ParentFolderId = "Some valid parent folder Id"; 
newFolder.ClassName = "IPF.Note"; 
newFolder.Id = "AAMkAGVlNT...."; 
await XClient.Me.Folders.AddFolderAsync(newFolder); 
         //throws exception "ID must be non-empty" 

從現有的資料如何 「使用EWS創建一個文件夾」(見例如http://msdn.microsoft.com/en-us/library/office/dn535504(v=exchg.150).aspx#bk_createfolderews) 我預計,只有父ID和顯示名稱需要進行設置。 我甚至提供了一個非空的ID,儘管從EWS的可用信息來看這似乎不明智。我在這裏做錯了什麼?

回答

1

經過一些試驗和錯誤,我自己想出了答案。而不是

await XClient.Me.Folders.AddFolderAsync(newFolder); 

需要遍歷文件夾樹以獲取父文件夾的ChildFolders集合(可能爲空)。例如,通過

await XClient.Me.Folders.GetById(parentId).ChildFolders.AddFolderAsync(newFolder); 

此外,設置newFolder的parentFolderID字段並不重要。

問候, 馬丁

PS:最初的嘗試是在與程序線過創建新的驅動器子文件夾:

Microsoft.Office365.SharePoint.SharePointClient SpClient; 
    ... 
    await SpClient.Files.AddFolderAsync(folder); 
相關問題