1.通过Feature来实现
1.1如果你想针对列表来隐藏新建文件夹命令,Feature代码如下:
<CustomAction Id="Remove.ListItem.NewFolder" Location="CommandUI.Ribbon"> <CommandUIExtension> <CommandUIDefinitions> <CommandUIDefinition Location="Ribbon.ListItem.New.NewFolder" /> </CommandUIDefinitions> </CommandUIExtension> </CustomAction>
1.2如果你想针对文档库来隐藏新建文件夹命令,Feature如下:
<CustomAction Id="Remove.Document.NewFolderButton" Location="CommandUI.Ribbon" RegistrationId="0x0101" RegistrationType="ContentType"> <CommandUIExtension> <CommandUIDefinitions> <CommandUIDefinition Location="Ribbon.Documents.New.NewFolder" /> </CommandUIDefinitions> </CommandUIExtension> </CustomAction>
1.3如果你想同时针对列表和文档库 来隐藏新建文件夹命令,Feature如下:
<?xmlversion="1.0"encoding="utf-8"?> <Elementsxmlns="http://schemas.microsoft.com/sharepoint/"> <CustomAction Id="Remove.ListItem.NewFolder" Location="CommandUI.Ribbon"> <CommandUIExtension> <CommandUIDefinitions> <CommandUIDefinition Location="Ribbon.ListItem.New.NewFolder"/> </CommandUIDefinitions> </CommandUIExtension> </CustomAction> <CustomAction Id="Remove.Document.NewFolderButton" Location="CommandUI.Ribbon"RegistrationId="0x0101" RegistrationType="ContentType"> <CommandUIExtension> <CommandUIDefinitions> <CommandUIDefinition Location="Ribbon.Documents.New.NewFolder"/> </CommandUIDefinitions> </CommandUIExtension> </CustomAction> </Elements>
2.通过c#代码来实现:
无论是列表还是文档库都有一个.EnableFolderCreation 属性,它可以控制是否启用新建文件夹命令。
SPSite spSite = new SPSite("http://sp2010vm"); foreach (SPWeb spWeb in spSite.AllWebs) { spWeb.AllowUnsafeUpdates = true; SPListCollection lists = spWeb.Lists; for (int i = 0; i < lists.Count; i++) { if (lists[i] is SPDocumentLibrary) { if (((SPDocumentLibrary)lists[i]).IsCatalog == false) { SPDocumentLibrary spList = (SPDocumentLibrary)lists[i]; if (spList.Title == "Classified Documents") { ////Update the list properties spList.EnableFolderCreation = false; spList.Update(); } } } } spWeb.AllowUnsafeUpdates = false; spWeb.Dispose(); } spSite.Dispose();
3.库设置--高级设置-- 是否提供“新建文件夹”命令
列表设置--高级设置-- 是否提供“新建文件夹”命令