有没有办法使用C#或Windows批处理命令以编程方式删除MS Word文件或图像文件的元数据信息?
删除这些信息的手动方法是右键单击Windows资源管理器中的文件,然后选择“属性”>“详细信息”>“删除属性和个人信息”。
答案 0 :(得分:2)
这并不容易,至少不能完全实现。
您可以查看Litera(以前称为Softwise)名为Metadact的元数据删除包。
市场上还有其他一些产品。
如果你想自己做,首先,你需要决定你认为“元数据”的内容。
使用Word对象模型(来自C#或VB的Interop)非常容易。
有些无法通过Word访问,因此您需要使用Structured Storage API来获取它(与前10位作者一样)。
如果您正在谈论DOCX文件,则可以使用OpenXML SDK获取文件中的所有包。然后使用XML来导航和编辑你不想要的位。
但是,这样,删除文档内容中的“元数据”变得更加困难,因为你必须处理内部的Word结构,如RUN,并更改跟踪内容。
答案 1 :(得分:0)
谢谢! 我想我找到了将办公文档中的元信息删除(或添加)的方法。这里有一篇Microsoft文章:The Dsofile.dll files lets you edit Office document properties when you do not have Office installed (KB 224351)
Dsofile.dll示例文件是一个进程内ActiveX组件 使用Microsoft Visual Basic .NET或Microsoft .NET的程序员 框架。您可以在自定义应用程序中使用它来读取和读取 编辑与Microsoft关联的OLE文档属性 Office文件,例如:
- Microsoft Excel工作簿
- Microsoft PowerPoint演示文稿
- Microsoft Word文档Microsoft
- 项目项目Microsoft Visio绘图
- 以OLE结构化存储格式保存的其他文件
Dsofile.dll示例文件是 用Microsoft Visual C ++编写。 Dsofile.dll示例文件 演示如何使用OLE32 IPropertyStorage接口进行访问 OLE结构化存储文件的扩展属性。组件 将数据转换为自动化友好数据类型,以便于使用 高级编程语言,如Visual Basic 6.0,Visual 基本的.NET和C#。 Dsofile.dll示例文件已全部给出 源代码,包括用Visual Basic 6.0编写的示例客户端 和Visual Basic .NET 2003(7.1)。