在文档集中创建自动子文件夹,而无需在内部创建模板文件 [英] Create automatic sub-folders inside Document Sets without creating template files inside
问题描述
你好
我需要在文档集中创建自动子文件夹,而无需在其中创建模板文件.
I have a requirement to Create automatic sub-folders inside Document Sets without creating template files inside.
在SharePoint Online中.
In SharePoint online.
谢谢.
anuj
推荐答案
我们可以创建一个事件接收器来实现它.
We can create a event receiver to achieve it.
创建一个添加了项的事件接收器,以检查当前列表项是否为文档集.如果是文档集",则在此文档集中创建一个文件夹.
Create an item added event receiver to check if the current list item is a Document set. If it is Document set, then create a folder in this document set.
//Check to see it the current list item is a Document set
public static bool IsDocumentSet(this SPListItem item)
{
bool documentSetItem = false;
DocumentSet documentSet = null;
if (null != item && item.IsFolder())
{
documentSet = DocumentSet.GetDocumentSet(item.Folder);
if (null != documentSet)
documentSetItem = true;
}
return documentSetItem;
}
// Create Folder client object
public static Folder CreateFolderInternal(Web web, Folder parentFolder, string fullFolderUrl)
{
var folderUrls = fullFolderUrl.Split(new char[] { '/' }, StringSplitOptions.RemoveEmptyEntries);
string folderUrl = folderUrls[0];
var curFolder = parentFolder.Folders.Add(folderUrl);
web.Context.Load(curFolder);
web.Context.ExecuteQuery();
if (folderUrls.Length > 1)
{
var subFolderUrl = string.Join("/", folderUrls, 1, folderUrls.Length - 1);
return CreateFolderInternal(web, curFolder, subFolderUrl);
}
return curFolder;
}
//we can get root folder of document set like below
Folder newFolder = docSet.Folder;
//我们可以获得如下所示的文档集的根文件夹URL
//we can get root folder URL of docement set like below
string url = docSet.Folder.Url;
string url = docSet.Folder.Url;
更多信息供您参考:
https://msdn.microsoft.com/en-us/library/ee231563.aspx?f = 255& MSPPError = -2147217396
https://www.c-sharpcorner.com/article/introduction- of-sharepoint-event-receivers/
最诚挚的问候,
刘李
这篇关于在文档集中创建自动子文件夹,而无需在内部创建模板文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!