Программная целевая библиотека документов по умолчанию для загрузки файлов в SP16
Я сделал C# приложение для загрузки файлов в SharePoint. Пока он работает как задумано, во всех библиотеках документов, кроме библиотеки по умолчанию. Каждый раз, когда выдается исключение: список "Документы" не существует на сайте с URL "http://...". Я также пытался использовать "Общие документы", но результат тот же. Есть ли в библиотеке по умолчанию какое-то внутреннее имя, о котором я не знаю?
Код для загрузки выглядит следующим образом:
// Get the SharePoint context
ClientContext context = new ClientContext(domain);
// Open the web
var web = context.Web;
String[] files = System.IO.File.ReadAllLines(args[0]);
foreach (String file in files)
{
// Create the new file
var newFile = new FileCreationInformation
{
Content = System.IO.File.ReadAllBytes(file),
Url = Path.GetFileName(file),
Overwrite = true
};
// Get a reference to the document library
var docs = web.Lists.GetByTitle(library);
var uploadFile = docs.RootFolder.Files.Add(newFile);
// Upload the document
context.Load(uploadFile);
}
1 ответ
Прежде всего, гораздо безопаснее получить список по URL, а не по названию.
using (ClientContext context = new ClientContext("https://sharepoint.domain.com"))
{
context.Load(context.Web, w => w.ServerRelativeUrl);
context.ExecuteQuery();
List list = context.Web.GetList($"{context.Web.ServerRelativeUrl.TrimEnd('/')}/Shared Documents");
}
Также не забудьте утилизировать объект context
,
Проверьте включенные альтернативные языки (Настройки сайта> Администрирование сайта> Настройки языка). У вас может быть больше включенных языков, и язык по умолчанию может отличаться от ожидаемого. Каждый язык имеет свое собственное имя списка.