2009-05-08 23 views
3

Je peux télécharger un fichier à sharepoint avec le webclient comme suitSharepoint .NET Créer un répertoire

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 si elles n'existent pas.

Des idées comment je peux faire ça?

Merci, -c

Répondre

3

Le terme "Annuaires" dans un site SharePoint est trompeur. La structure '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 SharePoint Object Model le 'répertoire' est par exemple: http://sharepoint.domain.com/dir est probablement un SPSite, avec dans le site vous pouvez avoir un 'répertoire' qui est SPFolders, SPLists, SPDocumentLibraries, etc

Si par "créer des répertoires qui n'existent pas" vous voulez dire dans la structure du répertoire du site SharePoint, vous ne pourrez pas faire avec WebClient. Vous avez deux options: le modèle d'objet Windows SharePoint Services et les services Web SharePoint. Le modèle d'objet est certainement plus facile à utiliser à mon avis mais il vous faudra exécuter l'application sur le même serveur que votre serveur SharePoint. Les Webservices sont un peu plus de travail mais ils 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 y a une abondante documentation pour l'utilisation du modèle objet situé Here mais si vous voulez utiliser les webservices vous aurez besoin d'y accéder aux endroits 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 à la recherche dans les listes ou documents d'espace de travail Services de service

Espérons que ça aide.

+0

Ça a bien fonctionné, avec deux prises. 1. Si vous avez des sous-sites, vous devez l'inclure dans l'URL afin qu'il essaie de créer le dossier au bon endroit. 2. Vous ne pouvez créer qu'un nouveau répertoire à la fois. Vous ne pouvez pas créer plusieurs répertoires à la fois. nouveau/sous/dossier) – CaffGeek

Questions connexes