我的应用程序通过Web客户端/WebDAV(WebDAV重定向器)在SharePoint中编辑文件。如何办理退房/入住手续?

我的应用程序通过Web客户端/WebDAV(WebDAV重定向器)在SharePoint中编辑文件。如何办理退房/入住手续?,sharepoint,webclient,Sharepoint,Webclient,我正在集成我的应用程序,以便它可以编辑存储在SharePoint中的文件。我使用的是Web客户端服务,也称为WebDAV重定向器(webclnt.dll),它可以通过WebDAV将正常的CreateFile/read/write Windows api调用从其正常驱动器I/O路径重定向到网络。但是,如果文件已签入,我只能以只读方式访问它 使用Web客户端服务,如何在编辑文件时使其签出,然后在编辑完成后使其签入 编辑:我尝试使用GetFileAttributes和SetFileAttributes

我正在集成我的应用程序,以便它可以编辑存储在SharePoint中的文件。我使用的是Web客户端服务,也称为WebDAV重定向器(webclnt.dll),它可以通过WebDAV将正常的CreateFile/read/write Windows api调用从其正常驱动器I/O路径重定向到网络。但是,如果文件已签入,我只能以只读方式访问它

使用Web客户端服务,如何在编辑文件时使其签出,然后在编辑完成后使其签入


编辑:我尝试使用GetFileAttributes和SetFileAttributes来测试文件\属性\只读,希望可以使用该标志来确定文件何时未签出,然后将其签出(通过将该标志设置为签出,然后将其设置为签入)。那里没有运气;文件始终显示为非只读。

要执行签入/签出文件,您需要使用以下代码:

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");
SPSite oSite=newspsite(“http://”);
SPWeb oWeb=oSite.OpenWeb();
SPList oList=oWeb.Lists[“共享文档”];
SPListItem oListItem=列表项[0]//以第一个列表项为例
colistitem.File.CheckOut();
oListItem[“名称”]=“xyz”;
Update();
oListItem.File.CheckIn(“文件名已更改”);

如果您需要通过SharePoint Web服务进行签入/签出,那么您应该查看Brad McCable的博客上的代码。

谢谢。如果我找不到文件I/O方法,我将走这条路。我的环境是C/C++(非托管)。你知道使用C/C++的例子吗?我下载了SharePoint SDK,它不包含任何c/c++示例。我还没有找到包含这些类的.h文件。我还没有看到SharePoint的C++代码,但是我也没有在C++中开发SharePoint。我认为你可以尝试从C++代码调用C++代码,或者你可以尝试通过C++访问SharePoint提供的Web服务(请参见我的答案中的Brad McCable博客链接)。祝你好运