0

我正在尝试从共享点文档库中删除文件。我的应用程序是 C#,它使用 sharepoint 的 Web 服务。想知道如何做到这一点。提前致谢。

4

2 回答 2

2

使用 Web 服务在 SharePoint 中删除文档

1.将Web引用添加到http://[您的站点]/_vti_bin/Lists.asmx

2.您需要文档ID、库名称和要删除的文档的Url

var spWebServiceLists = "http://[your site]/_vti_bin/Lists.asmx";
var listService = new Lists
{
    Credentials = CredentialCache.DefaultCredentials,
    Url = spWebServiceLists
};

string id = 10;
string library = @"Shared Documents";
string url = @"http://[your site]/Shared Documents/Test.docx";
string xml = "<Method ID='1' Cmd='Delete'>" + 
             "<Field Name='ID'>" + id + "</Field>" +
             "<Field Name='FileRef'>" + HttpUtility.UrlDecode(url) + "</Field>" +
             "</Method>";

/*Get Name attribute values (GUIDs) for list and view. */
System.Xml.XmlNode ndListView = listService.GetListAndView(library, "");
string strListID = ndListView.ChildNodes[0].Attributes["Name"].Value;
string strViewID = ndListView.ChildNodes[1].Attributes["Name"].Value;

/*Create an XmlDocument object and construct a Batch element and its
attributes. Note that an empty ViewName parameter causes the method to use the default view. */
System.Xml.XmlDocument doc = new System.Xml.XmlDocument();
System.Xml.XmlElement batchElement = doc.CreateElement("Batch");
batchElement.SetAttribute("OnError", "Continue");
batchElement.SetAttribute("ListVersion", "1");
batchElement.SetAttribute("ViewName", strViewID);

/*Specify methods for the batch post using CAML. To update or delete, 
specify the ID of the item, and to update or add, specify 
the value to place in the specified column.*/
batchElement.InnerXml = xml;

XmlNode item;
item = listService.UpdateListItems(library, batchElement);

我刚刚测试了这段代码并且运行良好。

有关更多信息,请参阅以下链接

Lists.UpdateListItems 方法

如何:更新列表项

于 2012-11-28T03:45:15.630 回答
1

如果您使用 SharePoint 2010,则可以使用 CSOM 访问 SharePoint Web 服务。此链接可能有助于执行 crud 操作。如果您使用 SharePoint 2013,还有 CSOM API,它具有与 2010 类似的功能。

于 2012-11-15T14:03:47.727 回答