【问题标题】:How to get GUID of a subfolder in a document library programmatically如何以编程方式获取文档库中子文件夹的 GUID
【发布时间】:2010-01-21 08:04:39
【问题描述】:

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

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

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

【问题讨论】:

    标签: sharepoint workflow guid document-library


    【解决方案1】:

    我现在没有 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());
    }
    

    【讨论】:

    • 非常感谢您的代码,我收到一条错误消息,提示 YourList.Folder 返回 SPListItems 并且它无法转换为 SPFolderCollection。但是您的解决方案绝对让我走上了正轨,我在下面找到了解决方案:)谢谢
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2015-09-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-12
      • 1970-01-01
      • 2017-01-28
      相关资源
      最近更新 更多