Как получить GUID подпапки в библиотеке документов программным путем - PullRequest
0 голосов
/ 21 января 2010

Хорошо, вот сценарий ... Я создал подпапку в библиотеке документов, и когда элемент добавляется в библиотеку документов, я хочу выполнить некоторую обработку документа, а затем переместить элемент в подпапку, скажем, MySubFolder. Для этой цели я буду использовать это утверждение

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

но коллекция Folders [] будет принимать либо индекс int, либо guid. Так как я делаю это в рабочем процессе, я не знаю, как получить guid папки здесь. Обратите внимание, что я не могу использовать URL, чтобы получить GUID здесь, потому что один и тот же рабочий процесс применяется ко многим библиотекам документов, и у меня есть подпапка MySubFolder во всех них, поэтому я думаю, что давать URL здесь немного неаккуратно. *

Ответы [ 2 ]

0 голосов
/ 21 января 2010

Я решил это, выполнив следующее:

Guid folderId = Guid.Empty;
SPFolder spFolder = web.Folders[this.workflowProperties.List.Title].SubFolders["MySubFolder"];
folderId=spFolder.UniqueId;
0 голосов
/ 21 января 2010

У меня сейчас нет 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());
}
...