2017-09-03 36 views
0

假設我們將一組MS Office文件從一個共享驅動器遷移到SharePoint(例如SharePoint Online)。僅限於Office 2007以上版本,因此文件擴展名如DOCX,XLSX。由於添加了元數據,SharePoint首次保存時會更改MS Office文件的大小。可以確認內容沒有改變?

我們發現,當文件保存到SharePoint時,文件的大小會發生變化 - 因爲添加了某些元數據。 (儘管非MS Office文件(如PDF或JPEG)的文件大小不會更改)。

這些MS Office文件是「容器」,其中放置了許多組件部分 - 通過將XLSX文件的擴展名(比如說)更改爲ZIP並使用WinZip打開它,可以粗略地查看這種情況。

出於良好的聲音完整性原因,我們希望確保「文件內容」組件部分沒有改變。

我們如何識別代表內容的容器內的組件部分? 這些組件在按照描述保存到SharePoint時是不變的嗎?

如果是這樣,是否有任何工具可以分析一對這樣的文件並確認內容是相同的,或者它是否已被更改?是否可能有一些校驗和,我們可以從這兩個文件中生成並進行比較。

如果沒有這樣的工具存在,哪種環境最適合創建它? - 可以在VB.NET和/或C#中完成嗎?

謝謝。

此前一篇文章涉及同一問題,但不提供我們需要的那種答案。 C# - Hash contents of MS Office documents without metadata

回答

0

有趣的話題。 我們如何識別代表內容的容器內的組件部分?

,你需要評估每個內容文件的DOCX內。請注意,docx中的文件是使用deflate壓縮的。所以你可能不得不誇大它們。這不僅是document.xml和document.xml.rels文件,還包括: - 標題xml文件(可以多於1) - 標題.rels文件 - 頁腳xml文件(也是多個文件) - 頁腳的.rels文件) - 媒體文件(含圖片)

你甚至可以檢查core.xml文件,如果的SharePoint性能降級改變如標題字段。

總之,您不能比較docx級別的docx文件。您需要解壓縮它們並比較(使用例如CRC32或MD5)每個「內容」文件。

我不知道提供此功能的實用程序。

注意:如果您只是需要將文件上傳到SharePoint進行歸檔,那麼將它們放入單獨的zip文件中可能是另一種選擇。如果您只需存儲內容並且不希望用戶進行任何更改,則這當然只是一種選擇。

Paul

相關問題