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
)