2010-12-14 26 views
1

items.countは10です。このdocumnentライブラリ "Auto Cad"に10個のサブフォルダ(リリース1 ...リリース10)があり、各サブフォルダにはファイルがありますlicense.txtと呼ばれます。 hmmm これはなぜファイルを返さないのですか?アイテム数は10でなければなりませんが、

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(); 
    } 
    } 
} 
} 
+0

コードスニペットを読みやすくするためにコードの書式を使用してください。 – Drew

+0

Drew、私は灰色の領域のコードブロックを見ることができ、各コード行はそれ自身の行です。何か不足していますか? –

答えて

0

SPQueryは、特定のフォルダを検索します - 再帰的

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

だからあなたのコードは、あなたが再帰呼び出しを使うようにする必要があり

SPQuery query = new SPQuery(); 
query.ViewAttributes = "Scope=\"Recursive\""; 
query.Query=".... REST OF YOUR CODE HERE " 
+0

は魅力的に働いていました。おかげでライアン.... –

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

この行は間違っています。これは、CAMLクエリであり、ファイル名の名前ではありません。

+0

投稿が編集されました。投稿を見たとき、それはQuery = "license.txt"でした。 –

+1

そして、あなたが私の投稿のコメントを得点の意図として与える前に。良い題材 "Em3rgency kinda situ @ tion"を持つことについてエチケットを持ってください。 –

0

する必要がありますあなたが設定する必要がサブフォルダを検索します解決策は以下に提供されています。

qry.ViewAttributes = "Scope = 'RecursiveAll' ";文書やフォルダも取得する query to get all items in a list including items in the sub folders in sharepoint

+0

ashutosh:ライアンのタイプのソリューションのように見えます。私もこれも試してみます。これら2つの主な違いは何ですか? –

+0

あなたは答えに付属のリンクを見て、あなたの質問に答えたことを確認してください –

+0

何時間も後に来た同じ答えは、より多くの票を得るでしょうか?点jealousy much;) – Ryan

関連する問題