Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在C#中获取Sharepoint文档库文件夹中的文件名?_C#_.net_Xml_Sharepoint_Xml Parsing - Fatal编程技术网

如何在C#中获取Sharepoint文档库文件夹中的文件名?

如何在C#中获取Sharepoint文档库文件夹中的文件名?,c#,.net,xml,sharepoint,xml-parsing,C#,.net,Xml,Sharepoint,Xml Parsing,我的sharepoint服务器上有一个文档库——“工件”。在图书馆里,我有一些文件夹。我想获取驻留在文件夹中的所有文件的名称。我正在使用Lists.asmx webservice获取此信息。但是我只能得到文件夹的名称,而不能得到每个文件夹中文件的名称。下面是获取文件夹名称的代码。如果有更好的方法来获取文件名而不是Lists.asmx,请使用一些示例代码进行建议。否则,请让我知道如何使用Lists.asmx webservice获取文件夹中的文件名 public Collection<str

我的sharepoint服务器上有一个文档库——“工件”。在图书馆里,我有一些文件夹。我想获取驻留在文件夹中的所有文件的名称。我正在使用Lists.asmx webservice获取此信息。但是我只能得到文件夹的名称,而不能得到每个文件夹中文件的名称。下面是获取文件夹名称的代码。如果有更好的方法来获取文件名而不是Lists.asmx,请使用一些示例代码进行建议。否则,请让我知道如何使用Lists.asmx webservice获取文件夹中的文件名

public Collection<string> GetFileNamesFromList(string sitePath, string folderName)
    {
        Collection<string> artifactsList = new Collection<string>();

        string innerhtml = string.Empty;
        string listServiceURL = string.Format("{0}{1}", sitePath, this.spserviceInfo.ListserviceUri);
        Lists listWS = new Lists(listServiceURL);
        listWS.UseDefaultCredentials = true;
        listWS.Url = listServiceURL;

        XmlDocument xmlDoc = new XmlDocument();
        XmlNode artifactQuery = xmlDoc.CreateNode(XmlNodeType.Element, "Query", "");
        XmlNode artifactViewFields = xmlDoc.CreateNode(XmlNodeType.Element, "ViewFields", "");
        XmlNode artifactQueryOptions = xmlDoc.CreateNode(XmlNodeType.Element, "QueryOptions", "");
        artifactQueryOptions.InnerXml = "<IncludeAttachmentUrls>TRUE</IncludeAttachmentUrls>";
        artifactViewFields.InnerXml = "";
        artifactQuery.InnerXml = "";

        XmlNode ndListItems = listWS.GetListItems("Artifacts", null, artifactQuery, artifactViewFields, null, artifactQueryOptions, null);

        XmlNodeList oNodes = ndListItems.ChildNodes;

        foreach (XmlNode node in oNodes)
        {
            XmlNodeReader objReader = new XmlNodeReader(node);

            while (objReader.Read())
            {
                if (objReader["ows_LinkFilename"] != null)
                {
                    var folder = objReader["ows_LinkFilename"].ToString();

                    artifactsList.Add(folder);
                }
            }
        }

        return artifactsList;
    }
公共集合GetFileNamesFromList(字符串sitePath、字符串folderName) { 集合工件列表=新集合(); string innerhtml=string.Empty; string listServiceURL=string.Format(“{0}{1}”,sitePath,this.spserviceInfo.ListserviceUri); Lists listWS=新列表(listServiceURL); listWS.UseDefaultCredentials=true; Url=listServiceURL; XmlDocument xmlDoc=新的XmlDocument(); XmlNode artifactQuery=xmlDoc.CreateNode(XmlNodeType.Element,“Query”,“”); XmlNode artifactViewFields=xmlDoc.CreateNode(XmlNodeType.Element,“ViewFields”和“”); XmlNode-artifactQueryOptions=xmlDoc.CreateNode(XmlNodeType.Element,“QueryOptions”和“”); artifactQueryOptions.InnerXml=“TRUE”; artifactViewFields.InnerXml=“”; artifactQuery.InnerXml=“”; XmlNode ndListItems=listWS.GetListItems(“工件”,null,artifactQuery,artifactViewFields,null,artifactQueryOptions,null); XmlNodeList oNodes=ndListItems.ChildNodes; foreach(oNodes中的XmlNode节点) { XmlNodeReader objReader=新的XmlNodeReader(节点); while(objReader.Read()) { if(objReader[“ows\u LinkFilename”]!=null) { var folder=objReader[“ows_LinkFilename”].ToString(); artifactsList.Add(文件夹); } } } 返回工件列表; }
尝试以下代码以获取基于文件夹的项目

using(SPSite site = new SPSite("site url"))
{
  using(SPWeb web = site.OpenWeb())
  {
    SPFolder folder = web.GetFolder("/Docs/folder1");
    if(folder.ItemCount > 0)
    {
      SPList list = web.Lists.TryGetList("ListName");
      SPQuery query = new SPQuery();
      query.Folder = folder;
      SPListItemCollection = list.GetItems(query);
    }
  }
}

这需要Microsoft.Sharepoint dll,该dll仅在Sharepoint Server中可用。我的开发机器是Windows8,我无法使用它。