2010-01-21 5 views
0

자, 여기에 시나리오가 있습니다 ... 문서 라이브러리에 하위 폴더를 만들고 문서 라이브러리에 항목을 추가하면 할 수 있습니다. 문서에 대한 일부 처리를 수행 한 다음 항목을 하위 폴더로 이동합니다 (예 : MySubFolder). 이를 위해, 나는이 문문서 라이브러리의 하위 폴더 GUID를 프로그래밍 방식으로 얻는 방법

SPListItem folder = this.workflowProperties.List.Folders[]; 

하지만 폴더 [] 수집에 소요하는 int 지수 중 하나 또는 GUID를 사용하는 것입니다. 내가 워크 플로우에서 그것을하고있는 중이라면, 나는 폴더의 GUID를 얻는 방법을 모릅니다. 여기서는 GUID를 얻기 위해 URL을 사용할 수 없다는 점에 유의하십시오. 동일한 워크 플로가 여러 문서 라이브러리에 적용되고 모든 항목에 MySubFolder 하위 폴더가 있으므로 URL을 제공하는 것이 다소 어려워 보입니다.

답변

0

나는 지금 여기 셰어가없는,하지만 당신은 할 수 있어야한다 :

Guid folderId = Guid.Empty; 
foreach (SPFolderCollection folder in YourList.Folders) 
{ 
    if (folder.Name == "MySubFolder") 
    { 
     folderId = folder.UniqueId; 
     break; 
    } 
} 

를 또는 이벤트 핸들러로, 폴더의 URL 구축 : 내가 해결

public override void ItemDeleting(SPItemEventProperties properties) 
{ 
    Uri folderAddress = new Uri(properties.BeforeUrl, "MySubFolder"); 
    SPFolder folder = yourWeb.GetFolder(folderAddress.ToString()); 
} 
+0

덕분에 당신의 코드에 대한 많은, 내가 YourList.Folder이 SPListItems을 반환하고 couldnt는 없다는 오류를 수신했다 b SPFolderCollection으로 캐스팅합니다. 하지만 당신의 솔루션은 확실히 올바른 위치에 놓았고 아래의 해결책을 찾았습니다. :) thanks – ria

0

을 수행하여 다음

Guid folderId = Guid.Empty; 
SPFolder spFolder = web.Folders[this.workflowProperties.List.Title].SubFolders["MySubFolder"]; 
folderId=spFolder.UniqueId;