.NET Sharepoint Создать каталог - PullRequest
3 голосов
/ 08 мая 2009

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

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);
}

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

Есть идеи, как мне это сделать?

Спасибо, -с

1 Ответ

3 голосов
/ 08 мая 2009

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

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

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

Вам нужно будет указать, какой тип объекта вы пытаетесь добавить (например, 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

Я предлагаю ознакомиться со службами Lists or Workspace Service.

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

...