Вопрос

Я могу загрузить файл в sharepoint с помощью webclient следующим образом

using (System.Net.WebClient webclient = new System.Net.WebClient())
{
    System.Net.NetworkCredential credentials = new System.Net.NetworkCredential(
                    Encryptor.Decrypt(ConfigurationManager.AppSettings["username"]),
                    Encryptor.Decrypt(ConfigurationManager.AppSettings["password"]),
                    ConfigurationManager.AppSettings["domain"]);
    webclient.Credentials = credentials;

    string path = Path.Combine("http://sharepoint.domain.com/dir", filename);
    webclient.UploadData(path, "PUT", fileBytes);
}

Но я не знаю, как создавать каталоги, если они не существуют.

Есть какие-нибудь идеи, как я могу это сделать?

Спасибо, -c

Это было полезно?

Решение

Термин "Каталоги" на сайте SharePoint вводит в заблуждение.Структура "каталога" веб-сервиса SharePoint - это виртуальная структура, расположенная в базах данных SharePoint.Вам необходимо определить, каким объектом в объектной модели SharePoint является "каталог", например: http://sharepoint.domain.com/dir вероятно, это SPSite, где на сайте у вас могут быть "каталоги", которые являются SPFolders, SPLists, SPDocumentLibraries и т.д.

Итак, если под "создавать каталоги, которые не существуют" вы имеете в виду структуру каталогов сайта SharePoint, вы не сможете использовать WebClient.У вас есть два варианта:объектная модель служб Windows SharePoint Services и веб-сервисы SharePoint.

Объектная модель, безусловно, проще в использовании, на мой взгляд, но она потребует от вас запуска приложения на том же сервере, что и ваш SharePoint server.Веб-сервисы требуют немного больше работы, но это позволяет вам использовать их удаленно.

Вам нужно будет определить, какой тип объекта вы пытаетесь добавить (напримерSPFolder, SPSite, SPList, SPDocumentLibrary и т.д.).

Существует достаточно документации по использованию объектной модели , расположенной Здесь но если вы хотите использовать веб-сервисы, вам нужно будет получить к ним доступ в следующих местах:

Administration Service       http://<server-url:port-number>/_vti_adm/admin.asmx
Alerts Service               http://<server-url>/_vti_bin/alerts.asmx
Document Workspace Service   http://<server-url>/_vti_bin/dws.asmx
Forms Service                 http://<server-url>/_vti_bin/forms.asmx
Imaging Service             http://<server-url>/_vti_bin/imaging.asmx
List Data Retrieval Service http://<server-url>/_vti_bin/dspsts.asmx
Lists Service                 http://<server-url>/_vti_bin/lists.asmx
Meetings Service               http://<server-url>/_vti_bin/meetings.asmx
Permissions Service         http://<server-url>/_vti_bin/permissions.asmx
Site Data Service             http://<server-url>/_vti_bin/sitedata.asmx
Site Service                   http://<server-url>/_vti_bin/sites.asmx
Users and Groups Service       http://<server-url>/_vti_bin/usergroup.asmx
Versions Service               http://<server-url>/_vti_bin/versions.asmx
Views Service                 http://<server-url>/_vti_bin/views.asmx
Web Part Pages Service       http://<server-url>/_vti_bin/webpartpages.asmx
Webs Service                   http://<server-url>/_vti_bin/webs.asmx

Я предлагаю заглянуть в Списки или службы Document Workspace Service services.

Надеюсь, это поможет.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top