【问题标题】:Get a subfolder using SharePoint CSOM使用 SharePoint CSOM 获取子文件夹
【发布时间】:2018-10-17 23:37:21
【问题描述】:

我想使用 CSOM 在 SharePoint 网站上的共享文档中获取一个文件夹,以便向其中添加文件。 这是我当前的代码:

        // Get the folder we want to add images to
        var context = new ClientContext(sharePointSiteUrl)
        context.Credentials = new SharePointOnlineCredentials(username, password);
        Web web = context.Web;
        Folder targetFolder = web.GetFolderByServerRelativeUrl("/Shared%20Documents/" + nameOfTargerFolder);
        context.ExecuteQuery();

我收到此错误:“服务器相对 url 必须以 SPWeb.ServerRelativeUrl 开头”

非常感谢!

【问题讨论】:

    标签: c# sharepoint csom


    【解决方案1】:

    网络对象有一个 serverrelativeurl 属性: https://docs.microsoft.com/en-us/dotnet/api/microsoft.sharepoint.spweb.serverrelativeurl?view=sharepoint-server

    试试这个:

        // Get the folder we want to add images to
        var context = new ClientContext(sharePointSiteUrl)
        context.Credentials = new SharePointOnlineCredentials(username, password);
        Web web = context.Web;
        context.Load(web, w => w.ServerRelativeUrl);
        context.ExecuteQuery();
        Folder targetFolder = web.GetFolderByServerRelativeUrl(web.ServerRelativeUrl + "/Shared%20Documents/" + nameOfTargerFolder);
        context.ExecuteQuery();
    

    【讨论】:

    • 你需要先加载web.ServerRealtiveUrl否则错误会一直存在。
    • 还需要在加载 web.ServerRelativeUrl 后插入另一个context.ExecuteQuery()。这个解决方案对我很有效!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-14
    相关资源
    最近更新 更多