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

CSOM中File对象ID属性的正确初始化与调用方法是什么?

CSOM File对象ID属性正确获取方式

你对File.ListId的判断正确,该属性返回的是文件所属列表/文档库的ID,不是文件本身的唯一标识。

SharePoint CSOM的File对象本身没有独立的ID属性,文件的列表内唯一标识直接复用其关联列表项的ID,你之前调用File.ListItemAllFields["ID"]失败的核心原因是:CSOM默认不会自动加载ListItemAllFields关联属性,必须显式声明加载该属性后才能正常读取字段值。

正确操作流程如下:

  • 第一步:获取File对象时,显式指定需要加载ListItemAllFields属性
  • 第二步:执行查询后再读取ListItemAllFields下的ID字段值

C# 代码示例:

using (ClientContext ctx = new ClientContext("你的站点完整URL"))
{
    // 示例:通过服务器相对路径获取目标文件
    File targetFile = ctx.Web.GetFileByServerRelativeUrl("/sites/站点名/文档库名/目标文件.xlsx");
    // 关键:显式声明加载File对象的ListItemAllFields属性
    ctx.Load(targetFile, f => f.ListItemAllFields);
    ctx.ExecuteQuery();

    // 此时可正常读取文件在所属列表内的唯一ID
    int fileListInnerId = (int)targetFile.ListItemAllFields["ID"];
}

如果需要跨列表全局唯一的文件标识,可以直接读取File.UniqueId属性,该属性是GUID类型的全局唯一标识,无需加载关联列表项即可获取:

ctx.Load(targetFile, f => f.UniqueId);
ctx.ExecuteQuery();
Guid fileGlobalUniqueId = targetFile.UniqueId;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.16 10:45:04