SharePoint 2007:如何使用Web服务检查列表中是否存在文件夹?

时间:2010-01-19 11:44:03

标签: sharepoint

使用SharePoint 2007 webservices甚至Webdav,如何检查SharePoint中的列表(而非文档库)中是否存在文件夹。

我还想检查子文件夹......

任何人都知道如何做到这一点?我问微软,他们的官方立场是微软没有提供相关文件。所以任何帮助都会受到欢迎......

提前致谢...

我有这个代码创建一个文件夹,但不知道如何修改它来检查文件夹是否存在,甚至不确定这是否适用于子文件夹......

private void CreateFolderUsingWebService(string listName, string folderName)
        {

            //Check Databox Folder Exists
            //string folderAddress = siteAddress + @"/lists/" + listAddress + @"/" + folderName;
            //wsDws.CreateFolder(folderAddress); 
            var doc = new XmlDocument();
            XmlElement batch = doc.CreateElement("Batch");
            string item = "<Method ID=\"1\" Cmd=\"New\">" +
                "<Field Name=\"ID\">New</Field>" +
                "<Field Name=\"FSObjType\">1</Field>" +
                "<Field Name=\"BaseName\">" + folderName + "</Field></Method>";

            batch.SetAttribute("ListVersion", "1");
            //batch.SetAttribute("ViewName", "{GUID of View, including braces}");
            batch.InnerXml = item;

            wsLists.UpdateListItems(listName, batch);
        }

2 个答案:

答案 0 :(得分:1)

请参阅我在这篇文章Sharepoint 2007, how to check if a folder exists in a document library上的回答,这非常相似。

答案 1 :(得分:1)

好的 - 此信息可能有助于下一个SharePoint开发人员:

上述功能有效,甚至可以创建目录结构。但是,您需要传递列表名称而不是列表URL,这意味着如果您本地化代码,则需要将本地化列表名称传递给函数。

我没有打扰为ifExists添加检查,因为它似乎不会创建重复项或者如果目录已经存在则会失败。我知道这不是一个很好的解决方案,但我没有2-3周的时间来研究如何正确地做到这一点,所以如果您有任何建议,欢迎提出意见。

最后,任何微软代表阅读本文 - 可能想要考虑为什么没有任何关于如何从MS获得真正好的文档? MMMMM

我去了下载MOSS Web Services SDK,它包含了一个非常模糊的例子,说明了如何在Lists Web服务中使用1个功能,这对我们这些试图整合强大解决方案的人来说根本不够在MOSS。我们需要更多文档...