我正在使用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,但我願意接受任何解決方案。
在此先感謝,並請讓我知道是否有任何其他信息將證明有用。