首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 企业软件 > 行业软件 >

sharepoint 2010 webservice遍历文档库二级文件夹解决方法

2013-06-26 
sharepoint 2010 webservice遍历文档库二级文件夹如何通过sharepoint 2010 webservice遍历文档库二级文件

sharepoint 2010 webservice遍历文档库二级文件夹
如何通过sharepoint 2010 webservice遍历文档库二级文件夹
例如有文档库:lh
lh下面有文件夹:技术、生产
技术下有文件夹:技术资料、开发资料
现在的问题是如何获取技术文件夹下面的文件夹和文件呢?
使用以下代码只能读到list的一级目录

sharecypcMOSS.Lists list = new sharecypcMOSS.Lists();  
            //获得链接凭证
            list.Credentials = new System.Net.NetworkCredential("sharecypc\administrator", "web_2009", "域地址");
            //创建XML节点对象
            list.UseDefaultCredentials = true;//这句代码是设置信任的,否则会报没有权限的错误。请求因 HTTP 状态 401 失败:Unauthorized”
            XmlDocument doc = new XmlDocument();
            //创建查询Query节点元素
            XmlNode query = doc.CreateNode(XmlNodeType.Element,"Query","");
            //创建查询ViewFields节点元素
            XmlNode ViewFields = doc.CreateNode(XmlNodeType.Element, "ViewFields","");
            if (listName.Equals("通知公告"))
            {
                query.InnerXml = "<OrderBy>    <FieldRef Name='ID' Ascending='FALSE' />  </OrderBy> ";
            }
            else {
                query.InnerXml = "<OrderBy>    <FieldRef Name='ID' Ascending='FALSE' />  </OrderBy>  <Where>    <Eq>      <FieldRef Name='_x6240__x5c5e__x90e8__x95e8_' />      <Value Type='Text'>生产技术部</Value>    </Eq>  </Where>";
            }
            
            ViewFields.InnerXml = "<FieldRef Name='ID' />  <FieldRef Name='Title' />   <FieldRef Name='Created' />";            
            XmlNode items = list.GetListItems(listName, null, query, ViewFields, rowlimit, null,null);//执行这步提示没权限401错误           
           //加载返回的XML文档结果集
            doc.LoadXml(items.OuterXml);
            //把xml转换成文件流
            StringReader xmlreader = new StringReader(doc.OuterXml);
            DataSet ds = new DataSet();


            //把流解析 到DataSet
            ds.ReadXml(xmlreader);
            xmlreader.Dispose();
            return ds.Tables[1];


[解决办法]
list.RootFolder--------//根文件夹!
foreach(SPFolder firstfolder in list.RootFolder.Forlders)------//一级文件夹!
{
if(firstfolder存在子文件夹)
{
foreach(SPFolder secondfolder in firstfolder.Forlders)------//二级文件夹!
}
}
[解决办法]

public NetworkCredential (
string userName,
string password,
string domain
)

第三个参数指定AD域名,第一个参数只要用户名。
如果没有AD域,则域名为SharePoint server的机器名。

热点排行