Warum docx re-compressed mit ZipFile.CreateFromDirectory
ist nicht identisch mit Original?Dekomprimierungsdateien dekomprimieren, ihren Inhalt vergleichen und eine neue zusammengeführte docx-Datei erstellen
Ich baue ein Modul für den Vergleich "docx" (und andere Word-Dokumente). Als erstes entpacke ich zwei "docx" -Dateien. Dann vergleiche und füge ich die XML-Dateien in der Verzeichnisstruktur ein, die nach der Dekomprimierung der Dokumente erstellt wurden. Am Ende komprimiere ich das zusammengeführte Verzeichnis und erstelle die neue "docx" -Datei. Die beiden "docx" -Dateien (die ursprüngliche und die zusammengeführte Datei) sind laut Microsoft-Wortvergleich identisch. Auch die XML-Inhalte sind nach CRC32-Vergleich gleich, aber die Größe oder der CRC32-Wert der zusammengeführten "docx" -Datei unterscheiden sich von der ursprünglichen. Für die Dekomprimierung verwende ich die System.IO.Compression-Bibliothek.
Ist das ein Komprimierungsproblem? Was ist der Komprimierungsalgorithmus, den das Microsoft Word (und andere Viewer) zum Erstellen von offenen XML-Dokumenten wie "docx" -Dateien verwenden?
Ich führe einige Unit-Tets für mehrere Docx-Vergleiche. Also denke ich, der einzige Weg, um zu überprüfen, ob ein Test korrekt übergeben wurde, ist der Vergleich der CRC32-Nummern.
public static void CreateCompressFile(string dirinfo, string originalFile)
{
FileInfo fi = new FileInfo(originalFile);
ZipFile.CreateFromDirectory(dirinfo,
originalFile.Replace(fi.Extension, "_tmp" + fi.Extension),
CompressionLevel.Fastest, false);
}
Können Sie bitte klären, welches Problem Sie haben? (docx ist in der Tat ZIP - Sie finden alle Details in der offiziellen Dokumentation - https://msdn.microsoft.com/en-us/library/dd773189(v=office.12).aspx) –
Nach ** dekomprimieren ** und dann ** komprimiere ich ein zusammengeführtes Dokument, der crc32-Wert ist anders, aber die docx-Datei ist die gleiche wie die ursprüngliche. – dsmyrnaios