C#或CMD:删除Word文件元数据

时间:2010-11-18 15:03:44

标签: c# image ms-word metadata exif

有没有办法使用C#或Windows批处理命令以编程方式删除MS Word文件或图像文件的元数据信息?

删除这些信息的手动方法是右键单击Windows资源管理器中的文件,然后选择“属性”>“详细信息”>“删除属性和个人信息”。

2 个答案:

答案 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)。