SharePoint新增及变更文档查询问题求助
刚踩过一模一样的坑!当初要查SharePoint里的新增和变更文档时,Write属性差点让我白忙活——它确实返回的是文档本身内嵌的修改时间戳,完全和文档上传到SharePoint的时间没关系。比如你本地存了个半年前修改的文档,上传到SP后Write显示的还是半年前的时间,根本没法用来判断什么时候加到库里面的。
给你几个亲测有效的解决思路:
1. 用SP原生的时间属性替代Write
SharePoint本身维护了两个完全可靠的时间戳,和文档内嵌日期无关:
Created属性:这个是文档被添加到SharePoint的准确时间,不管你本地文档改了多久,只要上传/新建到库,SP就会记录这个时间,绝对靠谱。Modified属性:这个是文档在SharePoint环境内的最后修改时间——包括在SP里编辑文档内容、修改属性,或者重新上传覆盖原文件的时间,完全由SP维护,和文档本身的内嵌日期没关系。
2. 示例查询(以REST API为例)
如果要查最近7天新增或变更的文档,可以这么写:
GET /_api/web/lists/getbytitle('你的文档库名称')/items?$select=Title,Created,Modified,FileRef&$filter=(Created ge datetime'2024-01-01T00:00:00Z') or (Modified ge datetime'2024-01-01T00:00:00Z')&$orderby=Modified desc
这里FileRef是文档的路径URL,方便你快速定位文件。
3. 我测试过程里的验证细节
当时深入研究属性时,特意做了几个对比测试,确认逻辑没问题:
- 上传本地去年修改的旧文档:
Created显示上传当天时间,Write显示去年的修改时间,Modified和Created一致(因为刚上传未修改)。 - 在SP里直接编辑文档内容:
Modified更新到编辑时间,Write还是文档内嵌的旧时间。 - 重新上传覆盖原文档:
Modified更新到覆盖的时间,Created保持第一次上传的时间(如果要追踪覆盖操作,看Modified就对了)。
4. 特殊场景的兼容处理
如果你既要追踪文档本身的内嵌修改时间,又要关注SP里的操作时间,可以同时取Write、Created、Modified三个属性,在逻辑里区分使用:
- 筛选新增到SP的文档:用
Created - 筛选在SP里被修改过的文档:用
Modified - 查看文档作者本地最后修改的时间:用
Write
内容的提问来源于stack exchange,提问作者Kevin Day
相关产品推荐
相关产品推荐

