You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用SharePoint CSOM获取文件夹/文件列表为空,但UI可见,如何排查?

SharePoint CSOM无法获取文档库文件夹集合的问题排查与解决

核心原因:权限限制

你猜测的权限问题确实是关键原因之一:如果你的账号仅拥有目标文件夹的独立权限,而没有文档库根文件夹的读取权限,那么通过list.RootFolder.Folders遍历根文件夹子集合时,会因权限不足无法看到目标文件夹,导致返回的集合为空。

解决方案

方案1:直接定位目标文件夹(推荐)

无需遍历根文件夹的子集合,直接通过文件夹的服务器相对路径定位,只要你拥有该文件夹的权限即可访问,不受根文件夹权限限制。

优化后的代码:

static void Main(string[] args)
{
    using (ClientContext ctx = new ClientContext("https://xxxxxxxx.sharepoint.com/sites/Industrial-IndustrialChannel/"))
    {
        ctx.AuthenticationMode = ClientAuthenticationMode.Default;
        SecureString securePassword = new SecureString();
        foreach (char c in "password")
            securePassword.AppendChar(c);
        ctx.Credentials = new SharePointOnlineCredentials("username", securePassword);

        // 替换<Folder-Name>为实际文件夹名称,路径格式为站点相对路径+文档库名+文件夹名
        Folder targetFolder = ctx.Web.GetFolderByServerRelativeUrl("/sites/Industrial-IndustrialChannel/Documents/<Folder-Name>");
        ctx.Load(targetFolder, f => f.Files); // 仅加载需要的属性,提升性能
        ctx.ExecuteQuery();

        foreach (File file in targetFolder.Files)
        {
            Debug.WriteLine(file.Name);
        }

        Console.WriteLine("操作完成");
        Console.Read();
    }
}

方案2:调整权限

如果必须通过遍历根文件夹的方式获取子文件夹,需要联系管理员给你的账号添加文档库根文件夹的读取权限,或者授予文档库的"浏览"级权限,确保你能看到根文件夹下的所有子对象。

额外注意点

原代码中ClientContext的URL包含双斜杠//,建议改为单斜杠/,避免潜在的路径解析问题。

内容的提问来源于stack exchange,提问作者Matt Holmen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 10:45:24