微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

无法使用SharePoint Client API列出文件/文件夹

如何解决无法使用SharePoint Client API列出文件/文件夹

我正在尝试使用C#(Microsoft.SharePoint.Client)中的官方SharePoint Client库来列出SharePoint在线站点中的文件文件夹。

这是站点文件的外观:

enter image description here

基于URL(您可以在图片中看到它),这就是我要这样做的方式:

using (ClientContext ctx = new ClientContext("https://*******.sharepoint.com/sites/cms"))
{
    //Setup authentication
    securestring passWord = new securestring();
    foreach (char c in "mypassword".tochararray())
    {
        passWord.AppendChar(c);
    }

    //Connect
    ctx.Credentials = new SharePointOnlineCredentials("myuser",passWord);
    Web web = ctx.Web;

    //Retrieve folder
    var folder = web.GetFolderByServerRelativeUrl("/doc/projects/C07725");
    ctx.Load(folder);
    ctx.ExecuteQuery(); //This seems to work

    //List subfolders
    ctx.Load(folder.Folders);
    ctx.ExecuteQuery(); //This throws Microsoft.SharePoint.Client.ServerException: 'File Not Found.'
}

但是,如注释中所示,最后一行抛出

Microsoft.SharePoint.Client.ServerException: 'File Not Found.'

如果我尝试使用Files属性而不是Folders,也会发生这种情况。

在这里想念什么? folder变量似乎已正确加载(调用一个ItemsCount之后,其中的11属性设置为.ExecuteQuery()),但是如果不加例外。我在这里做什么错了?

解决方法

好吧,我发现了问题。

“拆分”路径确实存在问题。

我不得不进一步介绍网站网址:

using (ClientContext ctx = new ClientContext("https://*******.sharepoint.com/sites/cms/doc/projects"))

并从文件夹路径中删除该部分:

var folder = web.GetFolderByServerRelativeUrl("C07725");

现在它可以正常工作了。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。