2017-09-03 13 views
0

複数のMS Officeファイルを共有ドライブからSharePoint(たとえばSharePoint Online)に移行するとします。 Office 2007以降に限定されているため、DOCX、XLSXなどのファイル拡張子があります。メタデータが追加されて以来、SharePointは最初に保存されたときにMS Officeファイルのサイズを変更します。コンテンツが変更されていないことを確認できますか?

特定のメタデータが追加されたときに、ファイルがSharePointに保存されるときにファイルのサイズが変更されることがわかります。 (ただし、PDFやJPEGなどの非MS Officeファイルのファイルサイズは変更されません)。

これらの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ファイル) - メディアファイル(画像を含む)

のSharePointプロパティの降格は、タイトルのようなフィールドを変更した場合にあなたもcore.xmlファイルをチェックする必要があります。

要約すると、docxファイルをdocxレベルで比較することはできません。それらを解凍し、「コンテンツ」ファイルのそれぞれを比較する必要があります(例えば、CRC32またはMD5を使用します)。

この機能を提供するユーティリティは認識していません。

注:アーカイブのためにファイルをSharePointにアップロードするだけであれば、ファイルを別々のzipファイルに配置することもできます。これはもちろん、コンテンツを保存するだけで、ユーザーが変更を行うことを期待しない場合はオプションです。

ポール

関連する問題