Как переместить документ в другую папку в библиотеке SharePoint с помощью веб-служб
-
19-09-2019 - |
Вопрос
Я отчаянно пытаюсь переместить документ в библиотеке документов из одной папки в другую (да, в пределах одной библиотеки).Все это необходимо сделать с помощью веб-сервисов.
Я использую метод UpdateListItems с пакетной обработкой XML следующим образом:
<Batch>
<Method ID="1" Cmd="Update">
<Field Name="ID">14</Field>
<Field Name="ServerUrl">personal/blabla/Documents/CT-5/image.jpg</Field>
</Method>
</Batch>
Я пробовал обновлять различные поля вместо ServerURL выше - ни одного удачного...
Спасибо за любые подсказки...
Решение
Так что в конце концов я нашел способ обойти это с помощью WebDAV.И извините, что вопрос был задан неправильно - мне действительно не нужны были веб-сервисы, скорее все, что было доступно для меня с удаленного сайта ASP.NET.Вот (простой) код для перемещения файла:
WebRequest lRequest = WebRequest.Create(sourceUrl);
lRequest.Credentials = CredentialCache.DefaultCredentials;
lRequest.Method = "MOVE";
lRequest.Headers.Add("Destination", targetUrl);
var lResponse = lRequest.GetResponse();
Другие советы
Я не думаю, что это возможно с готовыми веб-сервисами.Однако вы могли бы написать свой собственный веб-сервис и развернуть его в sharepoint.
Что также возможно, так это использовать 2 веб-сервиса:в Копировать веб-сервис и веб-сервис списков.Сначала сделайте копию, затем используйте службу Списков, чтобы удалить оригинал.
Да, используйте веб-службу копирования, как предлагает Колин.Это единственный способ с веб-сервисами OOB.Но просто имейте в виду, что вы потеряете всю информацию об авторе и дате, а также всю историю версий.Копия WS не сохраняет эту информацию.
Если это шоу-стопор, возможно, вы захотите взглянуть на CopyMove для SharePoint.Он также поставляется с веб-сервисом, который позволяет копировать или перемещать документы, элементы и папки без потери каких-либо метаданных.