Pergunta

Eu posso fazer upload de um arquivo para o SharePoint com o webclient como segue

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

Mas eu não sei como criar diretórios se eles não existem.

Alguma idéia de como posso fazer isso?

Obrigado, -c

Foi útil?

Solução

O termo "Diretórios" em um site SharePoint é enganosa. A estrutura 'diretório' de um webservice SharePoint é uma estrutura virtual que está localizado nas bases de dados do SharePoint. Você precisa identificar o objeto no objeto SharePoint Modelo do 'diretório' é, por exemplo: http: //sharepoint.domain .com / dir é provavelmente um SPSite, com no site você pode ter um 'diretórios' que são SPFolders, SPLists, SPDocumentLibraries etc.

Então, se por "criar diretórios que não existem" você quer dizer na estrutura de diretórios site do SharePoint, você não será capaz de fazer com o WebClient. Você tem duas opções: Windows SharePoint Services objeto de modelo, e os Webservices SharePoint.

O modelo de objeto é certamente mais fácil de usar na minha opinião, mas vai exigir que você executar o aplicativo no mesmo servidor como o servidor SharePoint. Os Webservices são um pouco mais trabalho, mas ele permite que você usá-los remotamente.

Você vai precisar para identificar que tipo de objeto que você está tentando adicionar (por exemplo SPFolder, SPSite, SPList, SPDocumentLibrary ect.).

Há ampla documentação para usar o modelo de objeto localizado Aqui , mas se você quiser usar os webservices você precisará acessá-los nos seguintes locais:

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

Eu sugiro olhar para as listas ou serviços Document Workspace Serviços.

Espero que ajude.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top