Question

Je peux télécharger un fichier sur un point de partage avec le client Web comme suit

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

Mais je ne sais pas comment créer des répertoires s'ils n'existent pas.

Avez-vous des idées pour faire cela?

Merci, -c

Était-ce utile?

La solution

Le terme "répertoires" dans un site SharePoint est trompeur. La structure de "répertoire" d'un service Web SharePoint est une structure virtuelle située dans les bases de données SharePoint. Vous devez identifier quel objet dans le modèle d'objet SharePoint le "répertoire" est par exemple: http: //sharepoint.domain .com / dir est probablement un SPSite, avec le site, vous pouvez avoir un "répertoires" qui sont SPFolders, SPLists, SPDocumentLibraries, etc.

.

Donc si vous créez des répertoires qui n'existent pas " vous voulez dire dans la structure de répertoire du site SharePoint, vous ne pourrez pas le faire avec WebClient. Vous avez deux options: le modèle objet Windows SharePoint Services et les services Web SharePoint.

À mon avis, le modèle objet est certes plus facile à utiliser, mais vous devrez exécuter l'application sur le même serveur que votre serveur SharePoint. Les Webservices demandent un peu plus de travail mais vous permettent de les utiliser à distance.

Vous devrez identifier le type d'objet que vous essayez d'ajouter (par exemple, SPFolder, SPSite, SPList, SPDocumentLibrary ect.).

Il existe une documentation abondante sur l’utilisation du modèle objet situé ici mais si vous souhaitez utiliser les services Web, vous devrez y accéder aux emplacements suivants:

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

Je suggère d'explorer les listes ou les services de service d'espace de travail de document.

L’espoir que cela aide.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top