1

我在 Office 365 的 SkyDrive Pro 中的“我的文档”文件夹中有个人文件。

据我了解,SkyDrive Pro 使用 SharePoint 作为后备存储。我可以使用 SharePoint API (Microsoft.SharePoint.Client.ClientContex) 访问这些文件吗?

我的意思是 Office 365 中的 SkyDrive Pro。例如,如果您访问 companyname.sharepoint.com,您将在右上角看到菜单:Outlook、日历、人员、新闻源、SkyDrive。它与消费者的 SkyDrive 不同。 在此处输入图像描述

4

2 回答 2

1

是的,您可以像往常一样通过 ClientContext 访问文件和文件夹信息。唯一的区别是,在构建 ClientContext 时,您需要使用不同的 URL - 当您转到“SkyDrive”选项卡时看到的那个(类似于https://companyname-my.sharepoint.com/personal/username_companyname_onmicrosoft_com/)。

如果您想以编程方式检索此 URL,可以使用以下代码段:

 var clientContext = new ClientContext("https://**companyname**-my.sharepoint.com/");
 clientContext.Credentials = new SharePointOnlineCredentials(**userName**, **password**);

 var props = peopleManager.GetMyProperties();

 clientContext.Load(props);            
 clientContext.ExecuteQuery();

 Console.WriteLine(props.PersonalUrl);
于 2013-12-17T13:55:58.417 回答
0

http://msdn.microsoft.com/en-us/library/office/dn423226.aspx

    public static void GetSkyDriveFiles(string path, int rowLimit, string sortExpression)
    {
          string queryText = "Path:\""+path+"Documents/*\" IsDocument:1";    
          //string uriTempale = "{0}_api/search/query?querytext='{1}'&rowlimit={2}&sortlist='{3}'";
           var clientContext = new ClientContext(@path)
           {
                  Credentials = "ur credentials";
           }


           cxq.KeywordQuery keywordQuery = new cxq.KeywordQuery(clientContext);
           keywordQuery.QueryText = queryText;
           keywordQuery.RowLimit = rowLimit;
           cxq_ConvertSortExpressionToList(keywordQuery.SortList, sortExpression);
           //keywordQuery.SortList.Add("Write", cxq.SortDirection.Ascending);

           cxq.SearchExecutor searchExecutor = new cxq.SearchExecutor(clientContext);
           ClientResult<cxq.ResultTableCollection> results = searchExecutor.ExecuteQuery(keywordQuery);
           clientContext.ExecuteQuery();
    }
于 2013-11-22T05:44:41.633 回答