Запрос файлов в 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 );
}