2010-12-14 4 views
1

items.count는 10이어야합니다.이 documnent 라이브러리에서 "Auto Cad"라는 하위 폴더 10 개 (릴리스 1 ... 릴리스 10)가 있으며 각 하위 폴더에는 파일 license.txt라고합니다. hmmm 왜 파일을 반환하지 않습니까?항목 수는 10이어야하지만 0

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

은 매력처럼 작동했습니다. 덕분에 Ryan .... –

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 : Ryan의 유형 솔루션처럼 보입니다. 나는 이것도 시험해 볼 것이다. 이 둘의 주요 차이점은 무엇입니까? –

+0

만약 당신이 대답과 함께 제공된 링크를보고 당신이 물어 본 질문에 답을 얻었 으면 –

+0

몇 시간 후에 나온 동일한 대답이 어떻게 더 많은 표를 얻었습니까? 점은 많이 질투합니다;) – Ryan

관련 문제