2016-10-10 7 views
0

Мне нужно использовать клиентское приложение sharepoint в моем проекте и перечислить документы в папках, загруженных в sharepoint. Мои папки по ссылке «https://mydomain.sharepoint.com/sites/blsmtekn/dyncrm/Shared%20Documents/Forms/AllItems.aspx»Получить библиотеки документов в веб-узле SharePoint

 using (ClientContext ctx = new ClientContext("https://mydomain.sharepoint.com/")) 
     { 
      string userName = "username"; 
      string password = "password"; 

      SecureString secureString = new SecureString(); 
      password.ToList().ForEach(secureString.AppendChar); 

      ctx.Credentials = new SharePointOnlineCredentials(userName, secureString); 

      List list = ctx.Web.Lists.GetByTitle("/Shared Documents/"); 
      CamlQuery caml = new CamlQuery(); 
      caml.ViewXml = @"<View Scope='Recursive'> 
           <Query> 
           </Query> 
          </View>"; 
      caml.FolderServerRelativeUrl = "/sites/blsmtekn/dyncrm/"; 
      ListItemCollection listItems = list.GetItems(caml); 
      ctx.Load(listItems); 
      ctx.ExecuteQuery(); 
     } 

Но я получаю сообщение об ошибке, как «Список ... не существует на сайте с URL». Как я могу получить список папок и файлов в этих папках рекурсивно.

ответ

0

Из-за моей головы я вижу несколько ошибок: в вашем коде указано, что имя вашей библиотеки /Shared Documents/, а имя, скорее всего, Shared Documents.

Исправьте имя вашего GetByTitle() вызова:

List list = ctx.Web.Lists.GetByTitle("Shared Documents"); 

Вторая ошибка в том, что URL-адрес для вашей коллекции сайта является неправильным. Он должен быть

ClientContext ctx = new ClientContext("https://mydomain.sharepoint.com/sites/blsmtekn/dyncrm/") 

Кроме того, вы можете удалить caml.FolderServerRelativeUrl = "/sites/blsmtekn/dyncrm/";, так что это не так.

В целом код должен выглядеть следующим образом:

using (ClientContext ctx = new ClientContext("https://mydomain.sharepoint.com/sites/blsmtekn/dyncrm/")) 
{ 
    string userName = "username"; 
    string password = "password"; 

    SecureString secureString = new SecureString(); 
    password.ToList().ForEach(secureString.AppendChar); 

    ctx.Credentials = new SharePointOnlineCredentials(userName, secureString); 

    List list = ctx.Web.Lists.GetByTitle("Shared Documents"); 
    CamlQuery caml = new CamlQuery(); 
    caml.ViewXml = @"<View Scope='Recursive'> 
         <Query> 
         </Query> 
        </View>"; 
    ListItemCollection listItems = list.GetItems(caml); 
    ctx.Load(listItems); 
    ctx.ExecuteQuery(); 
} 
+0

Спасибо за ваш ответ, но я получаю ту же ошибку после изменений. –

+0

Ну, тогда ваш url все еще не прав. – Marco

+0

Я проверил метод List by Web.Lists и увидел, что мои файлы находятся в списке «Belgeler». Мне сложно понять sharepoint api и структуру папок. –