1

items.countは少なくとも10である必要があります。このドキュメントライブラリ「AutoCad」に10個のサブフォルダ(リリース1 .....リリース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

以下の質問リンクで提供されている解決策を使用して、再帰呼び出しを行う必要があります

qry.ViewAttributes = "Scope='RecursiveAll'"; の使用をお勧めします。ドキュメントとフォルダーを取得するだけでなく、 クエリを実行して、sharepoint のサブフォルダー内のアイテムを含むリスト内のすべてのアイテムを取得します

于 2010-12-14T11:48:50.297 に答える
0

SPQuery は特定のフォルダーのみを検索します - 設定する必要があるサブフォルダーを再帰的に検索するには

SPQuery.ViewAttributes = "Scope=\"Recursive\"";

だからあなたのコードは

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