Размер на диске против Размер
Прежде всего следует отметить, что размер на диске почти всегда отличается от значения Размер , поскольку значение Размер на диске отражает выделенный диск. хранилища, но Размер отражает фактическую длину файла.
Дисковод разбивает свое пространство на блоки одинакового размера. Например, если ваш диск работает с блоками 4 КБ, то даже самый маленький файл, содержащий один байт, все равно будет занимать 4 КБ на диске, поскольку это минимальное пространство, которое он может выделить. После того, как вы записали 4KB + 1 байт, он выделит еще один 4KB блок памяти, таким образом, сделав его 8KB на диске. Следовательно, размер на диске всегда кратен 4 КБ. Таким образом, тот факт, что исходный и целевой файлы имеют одинаковый размер на диске , не означает, что файлы имеют одинаковую длину. (Различные диски имеют разные размеры блоков, это не всегда 4 КБ).
Значение Размер является фактической определенной длиной данных файла в дисковых блоках.
Ваш размер вопроса
Поскольку ваши значения Size отличаются, это означает, что операционная система сохранила данные различной длины. Следовательно, у вас есть фундаментальная проблема с вашей процедурой копирования, а не просто проблема с последним байтом, как вы думаете в данный момент. Один из ваших файлов - 3434 байта, а другой - 2 008, что является большой разницей. Ваш первый шаг должен понять, почему у вас такая большая разница.
Если ваша процедура сравнения в шестнадцатеричном формате просто просматривает данные блока, то она будет считать, что они имеют ту же длину, что и сравниваемые блоки диска, а не фактическую длину файла.