Изменить команду "Сделать" Новая папка "доступной?" опция с клиентской объектной моделью Sharepoint
У меня появилось много сайтов с библиотеками документов, в которых для опции "Сделать" Новая папка "доступна команда" установлено значение "Нет". Я хотел бы пройтись по этим библиотекам документов и изменить это на "да". Как мне этого добиться? После некоторого поиска я обнаружил, что с файлами в библиотеке документов можно многое сделать, но не нашел ни одного примера, показывающего, как изменить настройки (расширенные настройки) самой библиотеки.
Спасибо, вм
2 ответа
Так как вы ищете решение, которое использует CSOM API
В приведенном ниже примере показано, как включить папки для библиотек документов:
using (var ctx = new ClientContext(webUri))
{
var result = ctx.LoadQuery(ctx.Web.Lists.Where(l => l.BaseType == BaseType.DocumentLibrary && !l.Hidden));
ctx.ExecuteQuery();
foreach (var list in result)
{
list.EnableFolderCreation = true;
list.Update();
}
ctx.ExecuteQuery();
}
Версия VB.Net
Using context As Microsoft.SharePoint.Client.ClientContext = New Microsoft.SharePoint.Client.ClientContext(webUri)
Dim qry = From l In context.Web.Lists
Where (CInt(l.BaseType) = 1) AndAlso Not l.Hidden
Select l
Dim result As IEnumerable(Of Microsoft.SharePoint.Client.List) = context.LoadQuery(qry)
context.ExecuteQuery()
Dim list As Microsoft.SharePoint.Client.List
For Each list In result
list.EnableFolderCreation = True
list.Update()
Next
context.ExecuteQuery()
End Using
Использование powershell.
$list.EnableFolderCreation = $true;
$list.update();
поместите это в цикл for, который перебирает списки / сайты / веб-сайты вашей фермы. что-то вроде:
$sc = http://myweb.com/mysitecollection
$spsite = Get-SPsite $sc
foreach ($web in $spsite.AllWebs)
{
foreach ($list in $web.Lists)
{
$list.EnableFolderCreation = $true;
$list.update();
}
}
$spsite.dispose()
если вы предпочитаете делать это, используя объектную модель клиента, добавьте это в консольное приложение. (убедитесь, что вы ссылаетесь на Microsoft.SharePoint.dll)
using System;
using Microsoft.SharePoint;
namespace SharepointModifier
{
class FolderEnabler
{
static void Main(string[] args)
{
string sitecollectionaddress = "Http://mysitecollection.com/";
using (SPSite mysites = new SPSite(sitecollectionaddress))
{
foreach (SPWeb web in mysites.AllWebs)
{
foreach (SPList list in web.Lists)
{
list.EnableFolderCreation = true;
//Make any other changes to list properties here
list.Update();
Console.WriteLine(list.Title + " Has been updated.");
}
}
}
}
}
}