在 SharePoint 2013 中以编程方式创建文件夹

2024-03-15

目前我有在中创建文件夹的代码Documents运行时目录:

using (var context = new Microsoft.SharePoint.Client.ClientContext(sharePointSite))
{
    context.Credentials = new Microsoft.SharePoint.Client.SharePointOnlineCredentials(user, password);

    Web web = context.Web;

    Microsoft.SharePoint.Client.List docs = web.Lists.GetByTitle(<upper level folder>);
    docs.EnableFolderCreation = true;

    docs.RootFolder.Folders.Add(folderName);

    context.ExecuteQuery();

    return true;
}

我在使用此代码创建的文件夹中创建子文件夹时遇到问题。就像我想创建一个名为的文件夹一样Feb under Documents这会做到这一点。但如果我想创建一个名为Week 2在新文件夹下Feb。它不会那样做。我收到此错误:

{"List 'Feb' does not exist at site with URL 'https://my.sharepoint.com/sites/labels'."}

我意识到问题可能是docs.RootFolder.Folders.Add(folderName);因为Feb不会是根文件夹,当它查找它时,会抛出异常。

因此,我希望有人可以帮助我编写一些代码,将子文件夹添加到已创建的文件夹中。我正在使用 Visual Studios 2010,无法升级到 2012,否则我会升级到 2012。我有2013年的Microsoft.Sharepoint.Client可以在VS 2010中引用的dll。


如何在 SharePoint 2010/2013 中通过 CSOM 创建文件夹(包括嵌套)

/// <summary>
/// Create Folder client object
/// </summary>
/// <param name="web"></param>
/// <param name="listTitle"></param>
/// <param name="fullFolderUrl"></param>
/// <returns></returns>
public static Folder CreateFolder(Web web, string listTitle, string fullFolderUrl)
{
    if (string.IsNullOrEmpty(fullFolderUrl))
        throw new ArgumentNullException("fullFolderUrl");
    var list = web.Lists.GetByTitle(listTitle);
    return CreateFolderInternal(web, list.RootFolder, fullFolderUrl);
}

private 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;
}

Usage

 using (var ctx = new ClientContext("https://contoso.onmicrosoft.com/"))
 {
       ctx.Credentials = new Microsoft.SharePoint.Client.SharePointOnlineCredentials("username", "password");
       var folder = CreateFolder(ctx.Web, "Shared Documents", "FolderA/SubFolderA/SubSubFolderA");
 }

如何获取文件夹客户端对象

public static Folder GetFolder(Web web, string fullFolderUrl)
{
    if (string.IsNullOrEmpty(fullFolderUrl))
        throw new ArgumentNullException("fullFolderUrl");

    if (!web.IsPropertyAvailable("ServerRelativeUrl"))
    {
        web.Context.Load(web,w => w.ServerRelativeUrl);
        web.Context.ExecuteQuery();
    }
    var folder = web.GetFolderByServerRelativeUrl(web.ServerRelativeUrl + fullFolderUrl);
    web.Context.Load(folder);
    web.Context.ExecuteQuery();
    return folder;
}

Usage

var existingFolder = GetFolder(ctx.Web, "Shared Documents/FolderA/SubFolderA/SubSubFolderA");
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 SharePoint 2013 中以编程方式创建文件夹 的相关文章

  • Asp.net core默认路由

    简化版Startup code public void ConfigureServices IServiceCollection services services AddMvc public void Configure IApplica
  • 在 Web 浏览器中禁用 F5 [重复]

    这个问题在这里已经有答案了 可能的重复 禁用浏览器的后退按钮 https stackoverflow com questions 961188 disable browsers back button 如何禁用浏览器上的 F5 刷新 htt
  • 当从后台工作程序发生事件时,XlCall.Excel(XlCall.xlcCalculateNow) 抛出 XlCallException

    我有一个 ExcelFunction 来排队一些计算 ExcelFunction public static void QueueCalcs takes ranges var calcRequests builds list of calc
  • 从 Invoke 方法获取 RETURN

    我正在尝试从另一个线程上的列表框项目中读取值 我尝试创建一种新方法来运行调用命令 我可以设法将命令发送到列表框 例如通过调用方法添加 但我似乎无法得到响应 我似乎无法获取该项目的值 我尝试了几种方法 一旦我将它从空变为字符串 事情就开始变得
  • Nullable 是不可能的,为什么不呢? [复制]

    这个问题在这里已经有答案了 如果这是一个愚蠢的问题 请原谅 我正在尝试更好地理解 Net 中的 Nullable 类型 从我从 Microsoft 源代码 使用 ReSharper 中注意到的内容 我了解到 Nullable 是一个结构 而
  • 使用 Xamarin.Forms 和 Zxing 生成 QR 码

    我在网上看到了很多关于这个的内容 旧帖子 但似乎没有什么对我有用 我正在尝试从字符串中生成二维码并将其显示在应用程序中 这就是我一开始的情况 qrCode new ZXingBarcodeImageView BarcodeFormat Ba
  • OpenGL缓冲区更新[重复]

    这个问题在这里已经有答案了 目前我正在编写一个模拟水的程序 以下是我所做的步骤 创建水面 平面 创建VAO 创建顶点缓冲区对象 在其中存储法线和顶点 将指针绑定到此 VBO 创建索引缓冲区对象 然后我使用 glDrawElements 渲染
  • C# Outlook 从收件人获取 CompanyName 属性

    我目前正在使用 C 编写 Outlook 2010 AddIn 我想要的是从我从 AppointmentItem 中提取的 Recipient 对象中获取 CompanyName 属性 因此 有了 AppointmentItem 的收件人
  • 在 Mac OS X 上安装 libxml2 时出现问题

    我正在尝试在我的 Mac 操作系统 10 6 4 上安装 libxml2 我实际上正在尝试在 Python 中运行 Scrapy 脚本 这需要我安装 Twisted Zope 现在还需要安装 libxml2 我已经下载了最新版本 2 7 7
  • make_shared<>() 中的 WKWYL 优化是否会给某些多线程应用程序带来惩罚?

    前几天我偶然看到这个非常有趣的演示 http channel9 msdn com Events GoingNative GoingNative 2012 STL11 Magic Secrets作者 Stephan T Lavavej 其中提
  • C# Winforms Designer 无法打开,因为它无法在同一程序集中找到类型

    我收到以下错误 找不到类型 My Special UserControl 请确保引用包含此类型的程序集 如果此类型是您的开发项目的一部分 请确保已使用当前平台或任何 CPU 的设置成功构建该项目 但没有任何意义的是My Special Us
  • C 类型命名约定,_t 或 ALLCAPS

    我一直想知道是否有任何命名约定 例如何时对类型使用全部大写以及何时追加 t 什么时候不使用任何东西 我知道当时 K R 发布了各种有关如何使用 C 的文档 但我找不到任何相关内容 在 C 标准库类型中 t看起来漂亮占主导地位 time t
  • 如何增加ofstream的缓冲区大小

    我想增加 C 程序的缓冲区大小 以便它不会过于频繁地写入 默认缓冲区是 8192 字节 我尝试使用 pubsetbuf 将其增加到 200K 原始代码 ofstream fq fastq1 cstr ios out fastq1 is a
  • 是否可以在Linux上将C转换为asm而不链接libc?

    测试平台为Linux 32位 但也欢迎 Windows 32 位上的某些解决方案 这是一个c代码片段 int a 0 printf d n a 如果我使用 gcc 生成汇编代码 gcc S test c 然后我会得到 movl 0 28 e
  • C 与 C++ 中的 JNI 调用不同?

    所以我有以下使用 Java 本机接口的 C 代码 但是我想将其转换为 C 但不知道如何转换 include
  • 在 C++ 代码 gdb 中回溯指针

    我在运行 C 应用程序时遇到段错误 在 gdb 中 它显示我的一个指针位置已损坏 但我在应用程序期间创建了 10 万个这样的对象指针 我怎样才能看到导致崩溃的一个 我可以在 bt 命令中执行任何操作来查看该指针的生命周期吗 谢谢 鲁奇 据我
  • 使用 Unity 在 C# 中发送 http 请求

    如何使用 Unity 在 C 中发送 HTTP GET 和 POST 请求 我想要的是 在post请求中发送json数据 我使用Unity序列化器 所以不需要 新的 我只想在发布数据中传递一个字符串并且能够 将 ContentType 设置
  • 在 Qt 中播放通知(频率 x)声音 - 最简单的方法?

    Qt 5 1 或更高版本 我需要播放频率为 x 的通知声音 n 毫秒 如果我能像这样组合音调那就太好了 1000Hz 持续 2 秒 然后 3000Hz 持续 1 秒 最简单的方法是使用文件 WAV MP3 例如如此处所述 如何用Qt播放声音
  • 使用 boost 异步发送和接收自定义数据包?

    我正在尝试使用 boost 异步发送和接收自定义数据包 根据我当前的实现 我有一些问题 tcpclient cpp include tcpclient h include
  • 在 C 中使用 #define 没有任何价值

    If a define没有任何价值地使用 例如 define COMMAND SPI 默认值是0吗 不 它的评估结果为零 从字面上看 该符号被替换为空 然而 一旦你有了 define FOO 预处理器条件 ifdef FOO现在将是真的 另

随机推荐

  • Perl regex /o 优化还是错误?

    我正在读perldoc perlre并注意到这句有点有趣的台词 o pretend to optimize your code but actually introduce bugs 我搜索了文档的其余部分 但没有找到对提到的 错误 的另一
  • 如何在 flutter App 上叠加一个小部件?

    我想要一个位于整个应用程序之上的小部件 当我尝试这样做时Overlay of context insert替换该路线后 覆盖层随后会消失 有没有办法在我的应用程序顶部添加一个小部件 即使屏幕稍后弹出 也许存在更优化的方式 但作为一个选项 这
  • 指定输出程序集中 .csdl / .ssdl / .msl 元数据文件的位置

    我有一个 EF 项目 其中包含我已成功使用的数据模型 元数据工件处理 选项设置为 嵌入输出程序集中 由于 edmx 文件位于项目的根文件夹中 EntityConnectionStringBuilder 中使用的元数据字符串设置为 res m
  • 为什么 ::before 伪元素不能与 :visited 伪类一起使用?

    我正在尝试使用伪类和伪元素来设计我的元素 喜欢hover before工作正常但是 visited before不管用 如果链接被访问 我想显示 已看到 但是 visited before不工作 before after box sizin
  • SASS 项目中从右到左 (RTL) 支持

    我想知道是否可以制作一个 mixin 来处理多个参数作为应转换为 rtl 的属性 我想做类似的事情 css selector width 300px height 200px include rtl padding 10px 5px 3px
  • 找不到 Pyspark 模块

    我正在尝试在 Yarn 中执行一个简单的 Pyspark 作业 这是代码 from pyspark import SparkConf SparkContext conf SparkConf setMaster yarn client set
  • Bootstrap 弹出框在 AngularJs ng-repeat 中不起作用

    我有一个国家 地区列表 我正在使用 ng repeat 填充这些国家 地区列表 一切正常 另外 我试图通过使用引导弹出窗口来显示每个国家 地区内的一些其他详细信息 但它似乎不起作用 所以有人可以帮助我吗 网页代码 div class spa
  • PHP 和 mySQL:什么时候使用 htmlentities?

    平台 PHP 和 MySQL 出于实验目的 我自己在自己的网站上尝试了一些 XSS 注入 考虑这种情况 我有表单文本区域输入 由于这是一个文本区域 我可以输入文本和各种 英语 字符 以下是我的观察 A 如果我在将数据插入数据库之前仅应用 s
  • 如何检查 uint8_t 是否作为类型存在,而不是 unsigned char?

    我有两个编译器 一种可以识别 uint8 t GCC ARM EABI 另一种则不能 Renesas M16 标准工具链 Renesas 工具链不兼容 ANSI C 因此您可以丢弃 因此 uint8 t uint16 t 未定义为现有类型
  • 如何搜索 git 存储库历史记录以查找合并错误?

    在我们过去的某个时刻 git 的开发分支被合并了 然而 做出了错误的合并决定 因此一些代码没有进入我们预期的主分支 在最终合并到主分支之前 不同分支进行了多次合并 因此分支和合并历史相当复杂 有没有一种简单的方法来搜索 git 存储库以确定
  • 在 R 中创建默认评论标题模板?

    是否可以在 R 中为所有新脚本创建默认注释标题模板 我通常在所有脚本的顶部包含一些标准信息 并希望自动执行创建评论标题的过程 例如 Project Script purpose Date Author 按照上面 lmo 的建议 我通过编辑位
  • Pandas 滚动窗口 - datetime64[ns] 未实现

    我正在尝试使用 Python Pandas 构建一些图表 我有每秒采样的数据 这是一个示例 Index Time Value 31362 1975 05 07 07 59 18 36 151612 31363 1975 05 07 07 5
  • WEBHDFS REST API 将文件从 Windows 服务器/本地文件夹/桌面复制/移动到 HDFS

    使用 WEBHDFS REST API 调用 我可以将文件从 Windows 计算机 即 Windows 服务器或 Windows 本地文件夹或桌面 传输或复制到 Hadoop HDFS 文件系统吗 如果是 有任何示例命令信息吗 我已经尝试
  • 分解量子态

    我正在寻找采用由位组成的加权经典状态之和组成的任意量子态的算法 如下所示 0000 gt 2 0011 gt 2 0100 gt 2 0111 gt 2 并使用张量积将其分解为更紧凑的形式 如下所示 0 gt x 0 gt 1 gt x 0
  • 循环或重复一组任务直到成功

    我目前有一个包含任务文件的剧本 在该任务文件中 我想检查一个条件 如果该条件的退出代码不等于 0 则应重复任务文件中的所有步骤 我已经尝试了块和循环的一些变体 但我还没有找到一种方法来使它执行我上面描述的操作 目前我有这样的事情 tasks
  • eax如何存储大小大于4字节的返回值?

    EAX在32位平台上用于存储函数的返回值 我想知道如果函数的返回值的大小大于4个字节 eax如何处理 在这种情况下 操作系统可以将返回值保存在堆栈上 并将堆栈地址存储在EAX中 但是操作系统如何判断EAX中存储的值是返回值的地址还是实际上是
  • 单括号和双括号 Numpy 数组的区别?

    这两个 numpy 对象有什么区别 import numpy as np np array 0 0 0 0 np array 0 0 0 0 In 71 np array 0 0 0 0 shape Out 71 1 4 In 72 np
  • 在 [FINE UPLOADER] 中显示以前上传的图像

    我正在使用精细的上传器插件来上传图像 图片上传工作正常 我想做的是 当图像上传后刷新页面时 精细上传器应该显示以前上传的图像 这是我的代码 accordion on shown bs collapse function activeShop
  • 如何在 Laravel Eloquent 中使用带有子查询的内连接

    注意 这是 laravel 5 3 基本上 当用户选择阿拉伯语翻译时 我正在运行查询 完整的 sql 如下所示 select s ref t text as ref ar FROM stores AS s INNER JOIN SELECT
  • 在 SharePoint 2013 中以编程方式创建文件夹

    目前我有在中创建文件夹的代码Documents运行时目录 using var context new Microsoft SharePoint Client ClientContext sharePointSite context Cred