能不能查询出文件的元数据包括修改历史信息

能不能查询出文件的元数据包括修改历史信息

@yjw200815

概要
GroupDocs.Metadata .NET 主要用于读取和写入文档的通用元数据(如标题、作者、创建时间、自定义属性等),但在公开文档中并未声明能够直接获取 Office 文档的“修订/变更记录”(Track Changes)等编辑历史。如果需要获取 Word、Excel、PowerPoint 等文件的修订信息,通常需要使用能够解析这些内部结构的库(例如 GroupDocs.Editor .NET、Microsoft Open XML SDK 等)。

原因

  • 功能定位:GroupDocs.Metadata 的职责是处理文件的核心属性和自定义属性,而不是文档内部的编辑历史。官方 API 列表中没有类似 DocumentInfo.RevisionsGetRevisions 的成员。
  • 修订信息的存放位置:在 Office Open XML(.docx、.xlsx、.pptx)文件中,修订信息保存在特定的 XML 部分(如 word/trackChanges.xml),这些内容不属于标准元数据范畴。
  • 文件类型限制:纯文本、图片或不支持修订的 PDF 等格式本身不保存此类信息,即使使用其他库也无法获取。

接下来该怎么做

  1. 确认文件类型
  • 确认要读取的文件是支持“修订/变更记录”的 Office Open XML 格式(.docx、.xlsx、.pptx)。
  • 对于 PDF、TXT、图片等格式,修订信息不存在,无法获取。
  1. 选择合适的库
  • 首选:如果项目已经在使用 GroupDocs 系列产品,可考虑引入 GroupDocs.Editor .NET(提供 GetRevisions 等 API 用于读取编辑历史)。
  • 备选:使用 Microsoft Open XML SDK(官方免费)手动解析 trackChanges.xml 或相应的修订部分。
  1. 使用 Open XML SDK 读取 Word 修订示例(C#)
using System;
using DocumentFormat.OpenXml.Packaging;
using DocumentFormat.OpenXml.Wordprocessing;

class RevisionReader
{
 static void Main()
 {
 string filePath = @"C:\Docs\sample.docx"; // 替换为实际路径
 using (WordprocessingDocument doc = WordprocessingDocument.Open(filePath, false))
 {
 var trackChangesPart = doc.MainDocumentPart.TrackChangesPart;
 if (trackChangesPart != null)
 {
 var revisions = trackChangesPart.RootElement.Elements<Revision>();
 Console.WriteLine("--- 修订历史 ---");
 foreach (var rev in revisions)
 {
 Console.WriteLine($"类型: {rev.GetType().Name}");
 Console.WriteLine($"作者: {rev.Author}");
 Console.WriteLine($"时间: {rev.Date}");
 Console.WriteLine($"ID: {rev.Id}");
 Console.WriteLine("-------------------");
 }
 }
 else
 {
 Console.WriteLine("文档未包含修订信息或未启用 Track Changes。");
 }
 }
 }
}
  1. 如果希望继续使用 GroupDocs 产品
  • GroupDocs.Editor .NET 添加到项目(Install-Package GroupDocs.Editor),参考官方示例:
var editor = new Editor(filePath);
var revisions = editor.GetRevisions(); // 返回 RevisionInfo 列表
  • RevisionInfo 包含作者、时间、类型等属性,使用方式与上面的 Open XML 示例类似(具体类名和方法请查阅对应版本的 API 文档)。
  1. 排查常见问题
  • 修订为空:确认在原始编辑软件(如 Word)中已打开“审阅 → 修订”,并在保存前未接受所有更改。
  • 加载失败:检查文件是否受保护、只读或加密;若是,请先解除保护或提供密码。
  • 版本兼容:确保使用的 Open XML SDK 版本与项目的 .NET 目标框架匹配,或使用对应的 GroupDocs.Editor 版本。
  1. 后续跟进
  • 记录使用的库版本、目标文件扩展名以及出现的异常信息。
  • 如项目必须统一使用 GroupDocs 系列,可评估是否升级到支持修订的 GroupDocs.Editor 版本,或在代码库中封装 Open XML 读取逻辑以提供统一接口。

结论
目前没有证据表明 GroupDocs.Metadata 本身能够直接查询文件的修改历史(修订记录)。若需要此类信息,建议使用 GroupDocs.Editor .NET 或 Microsoft Open XML SDK 等能够解析 Office 文档内部修订结构的工具。

麻烦请问一下啊能够跨电脑查看吗

@yjw200815

我们已在内部问题跟踪系统中创建以下新工单,以尝试恢复元数据编辑历史记录,并将根据免费支持政策中的条款提供修复。

问题 ID:METADATANET-4162

如果您需要优先支持,并希望直接联系我们的付费支持管理团队,您可以购买付费支持服务

是的,如果您使用 GroupDocs.Metadata API 编辑元数据,则更改将保留并显示在您在任何计算机上查看文件时。