Запрос файлов в SharePoint ClientObjectModel API

Я использую API объектной модели управляемого клиента SharePoint для извлечения файлов из SharePoint в консольное приложение, написанное на C#. Мой код (здесь сокращенно) выглядит примерно так:

ClientContext clientContext = GetClientContext(sitePath);
Web rootWeb = clientContext.Web;

var files= rootWeb.GetFolderByServerRelativeUrl(relativeURL).Files;
clientContext.Load(files);
clientContext.ExecuteQuery();
// FileCollection files has no results

Возвращенная FileCollection (files) не имеет результатов, даже если в указанной папке (в относительном UL) есть несколько файлов. Когда я запускаю фрагмент кода ниже, свойство ItemCount объекта Folder равно 2.

ClientContext clientContext = GetClientContext(sitePath);
Web rootWeb = clientContext.Web;

var folder = rootWeb.GetFolderByServerRelativeUrl(relativeURL);
clientContext.Load(folder);
clientContext.ExecuteQuery();

// folder.ItemCount == 2

Я не могу понять, почему я не могу получить файлы. Все разрешения, кажется, в порядке. Существуют ли другие ошибки, которые существуют в API?

2 ответа

Я понял мою проблему. Мой sitePath был не совсем завершен. У меня была часть сайта с префиксом относительной. Таким образом, я мог создать контекст сайта, а также получить папку, но так как clientContext не был создан полностью с нужным мне сайтом, я никогда не мог получить файлы.

Я только начинаю себя, но мой код выглядит так же, как ваш, но у меня есть этот цикл после него

...         
clientContext.ExecuteQuery();
foreach( File file in files )
{
Debug.WriteLine( file.ServerRelativeUrl + "\t Level: " + file.Level + "\t modified: " + file.TimeLastModified + "\t by: " + file.ModifiedBy.ToString() + "\t CheckInComment: " + file.CheckInComment + "\t UIVersionLabel: " + file.UIVersionLabel );
}
Другие вопросы по тегам