이 문제를 실행 하는 계속 하 고 Google 이해 무엇을 원하는 것으로 보인다, 그래서 이것을 쓸 것 이라고 생각.
지난 주 또는 2에서 디버깅 하는 이벤트 수신기의 많은 해 왔습니다.. 응급실은 문서 라이브러리에 대 한 정의. 문서 라이브러리에 있는 개별 항목 부모 폴더에 밀접 하 게 관련. 그래서, 다양 한 조작에 대 한 항목의 폴더를 항상 있어요. 디버깅 하는 동안, 특정 항목의 ID를 알고에 대 한 폴더의 메타 데이터를 업데이트 하는 데 필요한.
여기는 작은 콘솔 응용 프로그램 (팜의 서버에서 실행 하도록 설계) 두 개의 인수를 사용 하는: 필드에 할당할 값을 항목 ID, "승인 상태". 하드 코드 물건을 많이 하 고 없습니다 오류 검사.
코드는 하드 코딩 된 사이트를 조회, 하드 코딩 된 문서 라이브러리를 가져오고 표시 된 항목을 찾습니다.. 다음 해당 항목의 상위 폴더를 찾습니다 및 상태 값을 할당 합니다..
나를 위해 주요 교훈을 여기는 SPItem 폴더에 대 한 액세스를 하지 않습니다.. SPListItem.File를 사용 해야.
만약 아무도 관심 비판을 제공 하거나 항목의 폴더를 얻을 수 있는 더 나은 방법 제안, 코멘트를 남겨 주세요.
<코드>
사용 하 여 시스템; 사용 하 여 System.Collections.Generic; 사용 하 여 System.Text; 사용 하 여 Microsoft.SharePoint; 사용 하 여 System.Collections; 네임 스페이스 Conchango { /// <요약> /// </요약> 클래스 ManualFolderUpdate { 정적 void 메인(문자열[] args) { 문자열 msh = "ManualFolderUpdate (v1.0): "; // msh "메시지 머리글 =" 콘솔.WriteLine(msh + "시작. 08/04/08에 마지막으로 바뀌었습니다."); 문자열 url = http://localhost/xyzzy; 사용 하 여 (SPSite oSPSite = 새로운 내용 SPSite(url)) { 사용 하 여 (SPWeb oSPWeb = oSPSite.OpenWeb()) { SPList docLib = oSPWeb.Lists["문서"]; 콘솔.WriteLine(msh + "문서 라이브러리를가지고."); 콘솔.WriteLine(msh + "Doc lib 항목 수: [" + docLib.ItemCount + "]."); int FolderID = 0; 문자열 NewStatus = "xyzzy"; FolderID 시스템 =.변환.ToInt32(args[0].ToString()); 콘솔.WriteLine("폴더 항목에 대 한 추구: [" + FolderID + "]."); SPListItem li docLib.GetItemById =(FolderID); SPFolder thisItemFolder = li.File.ParentFolder; 콘솔.WriteLine(msh + "상위 폴더 있어."); NewStatus args =[1].ToString(); 콘솔.WriteLine("설정 상태를 [" + NewStatus + "]."); 콘솔.WriteLine("중단 업데이트 또는 CTRL-C를 커밋 반환을 누릅니다."); 콘솔.ReadLine(); thisItemFolder.Item["승인 상태"] = NewStatus; thisItemFolder.Item.Update(); 콘솔.WriteLine(msh + "폴더를 업데이트 완료. 종료."); } // Spweb를 사용 하 여 } // 사용 하 여 SPSite 콘솔.WriteLine(msh + "완료."); } // 메인 } // 클래스 foldersync } // 네임 스페이스
</코드>
</끝>
테크노 태그: SharePoint 프로그래밍