更改“生成”新文件夹“命令可用吗?” Sharepoint客户端对象模型的选项

时间:2015-09-07 18:23:57

标签: sharepoint sharepoint-clientobject

我有很多带文档库的网站,其中“Make”New Folder“command available”选项设置为“no”。 我想浏览这些文档库并将其更改为“是”。 我怎样才能做到这一点?在做了一些搜索之后,我发现文档库中的文件可以做很多事情,但没有找到任何显示如何更改库本身的设置(高级设置)的示例。

谢谢你, vm

2 个答案:

答案 0 :(得分:1)

使用powershell。

$list.EnableFolderCreation = $true;
$list.update();

将它放在一个for循环中,循环遍历您的服务器场的lists / sites / webs。类似的东西:

$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.");    
                    }
                }
            }

        }
    }
}

答案 1 :(得分:1)

由于您正在寻找使用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