2009-02-11 6 views
4

J'intègre mon application pour pouvoir éditer les fichiers stockés dans SharePoint. J'utilise le redirecteur AKA WebDAV du service Web Client (webclnt.dll) qui fait un excellent travail en permettant aux appels API Windows CreateFile/read/write normaux d'être redirigés depuis leur chemin d'E/S normal vers le réseau via WebDAV. Cependant, je ne peux obtenir un accès en lecture seule au fichier que s'il est archivé.Mon application modifie un fichier dans SharePoint via Web Client/WebDAV (redirecteur WebDAV). Comment puis-je vérifier/vérifier?

En utilisant le service client Web, comment puis-je faire en sorte que le fichier soit extrait lorsque je l'édite, puis le vérifier? quand j'ai fini de l'éditer? Edit: J'ai essayé d'utiliser GetFileAttributes et SetFileAttributes pour tester FILE_ATTRIBUTE_READONLY, en espérant que je pourrais utiliser cet indicateur pour déterminer quand le fichier n'a pas été extrait, puis pour le vérifier (en désactivant cet indicateur pour vérifier, puis en le réglant pour le vérifier). Pas de chance là-bas; le fichier apparaît toujours comme n'étant pas en lecture seule.

Répondre

1

bien pour effectuer le check-in/check-out un fichier que vous devez utiliser le code suivant:

SPSite oSite = new SPSite ("http://<sitename>/"); 
SPWeb oWeb = oSite.OpenWeb(); 
SPList oList = oWeb.Lists["Shared Documents"]; 
SPListItem oListItem = oList.Items[0]; //taking the first list item 
oListItem.File.CheckOut(); 
oListItem["Name"] = "xyz";   
oListItem.Update(); 
oListItem.File.CheckIn("file name has been changed"); 

Si vous devez faire le check-in/check-out via le WebService SharePoint alors vous devriez jetez un oeil sur le code sur le blog de Brad McCable au Windows Sharepoint Services Web Service Example.

+0

Merci. Je vais aller cette route si je ne peux pas trouver une méthode d'E/S de fichier. Mon environnement est C/C++ (non géré). Connaissez-vous des exemples utilisant C/C++? J'ai téléchargé le SDK SharePoint et il ne contenait aucun échantillon c/C++. Je n'ai trouvé aucun fichier .h contenant ces classes non plus. – Steve

+0

Je n'ai pas encore vu le code C++ pour SharePoint mais je ne développe pas non plus en C++ pour SharePoint. Je pense que vous pouvez essayer d'appeler le code C# à partir de votre code C++ ou vous pouvez essayer d'accéder au service Web que SharePoint fournit via C++ (voir le lien vers le blog de Brad McCable dans ma réponse). Bonne chance. – AboutDev