1

items.count 应该至少为 10。我在这个文档库“Auto Cad”中有 10 个子文件夹(Release 1 ..... Release 10),每个子文件夹都有一个名为 license.txt 的文件。嗯为什么这不返回任何文件?

private void btnGetFileGuid_Click(object sender, EventArgs e)
{ 

using (SPSite site = new SPSite("https://www.abc.com/sites/Software"))
 { 
 using (SPWeb web = site.OpenWeb())
 { 
  SPList spList = web.Lists["Auto Cad"];
  string fileName = "license.txt"; 
  SPQuery query = new SPQuery(); 
  query.Query="<Where><Eq><FieldRef Name='FileLeafRef' /><Value Type='Text'>" + fileName + "</Value></Eq></Where>"; 
  SPListItemCollection items = spList.GetItems(query); 
  if (items.Count > 0) 
   { 
    Guid id = items[0].UniqueId; 
    lblGuid.Text = id.ToString(); 
   } 
  }
 } 
}  
4

3 回答 3

0
query.Query="" + fileName + "";

这条线是错误的。这应该是 CAML 查询而不是文件名。

于 2010-12-14T04:53:17.093 回答
0

SPQuery 仅搜索特定文件夹 - 递归搜索您需要设置的子文件夹

SPQuery.ViewAttributes = "范围=\"递归\"";

所以你的代码应该是

SPQuery query = new SPQuery(); 
query.ViewAttributes = "Scope=\"Recursive\"";
query.Query=".... REST OF YOUR CODE HERE "
于 2010-12-14T10:08:52.400 回答
0

您需要使用下面提供的问题链接中提供的解决方案进行递归调用

我建议使用 qry.ViewAttributes = "Scope='RecursiveAll'"; 获取文档和文件夹以及 查询以获取列表中的所有项目,包括 sharepoint 中子文件夹中的项目

于 2010-12-14T11:48:50.297 回答