我正在使用SharePoint(2013)事件接收器来监视何时将文件添加到文档库。每次检入文件时,如果它是一个MS Office文档,我想阅读它的自定义属性并根据需要修改它们(基本上,我希望将其历史记录保存在文件中)。SharePoint服务器读写office 2003二进制文件自定义属性
我能够使用openXML为最近的办公文档(2007年以后)做到这一点。一个小例子来说明如何我读一个.docx文件(从SPFILE)是:
SPSecurity.RunWithElevatedPrivileges(delegate()
{
byte[] byteArray = File.OpenBinary();
using (MemoryStream mem = new MemoryStream())
{
mem.Write(byteArray, 0, (int)byteArray.Length);
try
{
using (WordprocessingDocument wordDoc = WordprocessingDocument.Open(mem, true))
{
CustomFilePropertiesPart cp = wordDoc.CustomFilePropertiesPart;
这似乎工作的伟大,后来我可以在使用savebinary写入文件中修改后自定义属性。
我的问题是,我想能够为Office 2003文档(.doc,.xls,.ppt)做同样的事情。我发现DSOFile,但问题是我无法使用标准的“打开”功能来访问该文件,因为我在服务器上。
我的问题是 - 如何在C#中的Sharepoint农场解决方案中读写office 2003 .doc/.xls/.ppt的自定义属性,理想情况下使用DSOFile,但我愿意接受任何解决方案。
在此先感谢,并请让我知道是否有任何其他信息将证明有用。