2010-01-21 36 views
0

好的,这里是场景... 我已经在文档库中创建了一个子文件夹,并且当一个项目被添加到文档库时,我想要做对文档进行一些处理,然后将项目移动到子文件夹,比如MySubFolder。为此,我将使用此语句如何以编程方式获取文档库中子文件夹的GUID

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

但Folders []集合将采用int索引或guid。即使我正在做一个工作流程,我不知道如何得到这里的文件夹GUID。请注意,我无法使用url来获取GUID,因为相同的工作流应用于多个文档库,并且我在其中都有MySubFolder子文件夹,因此在我看来,给出url似乎有点俗气。

回答

0

我没有让SharePoint现在在这里,但你应该能够做到:

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

或者,到你的事件处理程序,建立自己的文件夹,网址:

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。 但你的解决方案绝对把我放在正确的轨道上,我发现下面的解决方案:)谢谢 – ria 2010-01-21 11:03:22

0

我解决它通过执行以下操作:

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