如何以编程方式获取文档库中的子文件夹的GUID

时间:2010-01-21 08:04:39

标签: sharepoint workflow guid document-library

好的,这是场景...... 我在文档库中创建了一个子文件夹,当一个项目添加到文档库时,我想对文档进行一些处理,然后将项目移动到子文件夹,比如说MySubFolder。为此,我将使用此声明

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

但是Folders []集合将采用int索引或guid。我在工作流程中这样做,我不知道如何获取文件夹的guid。请注意,我不能使用url来获取GUID,因为相同的工作流程应用于许多文档库,并且我在所有文档库中都有MySubFolder子文件夹,所以在这里给出url似乎有点俗气。

2 个答案:

答案 0 :(得分:0)

我现在没有Sharepoint,但你应该能够做到:

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

答案 1 :(得分:0)

我通过以下方式解决了这个问题:

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