Я смутно слышал о контрольной сумме
сравнение.
Контрольные суммы хорошо работают для сравнения байтовой точности байтов. Если это то, что вы ищете, то считайте байты каждого документа в поток и используйте SHA256Managed
или MD5CryptoServiceProvider
для генерации контрольной суммы для каждого файла. Если две контрольные суммы совпадают, то, скорее всего, два документа совпадают.
MD5 не подходит для целей безопасности (http://en.wikipedia.org/wiki/MD5 - см. «Безопасность»), но он подходит для целей сравнения, когда вы контролируете оба документа. Также имейте в виду, что контрольные суммы не являются на 100% уникальными, поэтому всегда существует удаленная возможность столкновения.
У меня есть тот, который генерируется из
шаблон документа, где некоторые разделы
удаляются динамически через
закладки и разделы блоков из
шаблон.
Однако, если вы сравниваете раздел за разделом, то вам, возможно, потребуется открыть документ размером больше, чем необработанные байты, и иметь дело с ним структурированным образом, например, раздел за разделом. Вы можете программно открыть файл .docx, используя c # (используя различные средства); возможно, вы сможете выполнить контрольную сумму для содержимого каждого раздела?
В этой теме рассказывается о создании / манипулировании файлами .docx с использованием c #: Как можно создать документ Word в C #? . Те же инструменты могут быть использованы для чтения одного.