У меня есть коробка Windows Vista Business на работе и коробка Windows XP Professional дома. Оба обновлены до зубов, но проблема все равно остается. Симптомы:
Например, я только что скопировал файл MP3. Размер на коробке Vista составляет 66 373 042 байта, но при копировании на коробку XP он составляет 66 387 968 байтов.
Мне не удалось найти что-либо подобное в Google. Любые идеи?
Ужасно похоже на эту проблему, которую я обнаружил на microsoft.com: Некоторые файлы повреждаются после копирования с RDC в Windows Terminal Services
Поскольку Visa и 2008 имеют общую базу, весьма вероятно, что их обоих поражает одна и та же ошибка.
Одна вещь, которую я хотел бы отметить, заключается в том, что использование размеров файлов для проверки того, в порядке ли файл, не является хорошим решением. Я использую хеши md5 или sha для каждой передачи по WAN. Я использую инструмент с открытым исходным кодом md5deep для создания и проверки хэшей. Если вам по какой-то причине не нравится md5deep, существует множество других инструментов для хеширования.
У меня точно такие же проблемы с копированием файлов на (или с) 64-разрядный хост Windows 7 (RTM) и 32-разрядный клиент Windows XP. Размеры некоторых скопированных файлов больше, чем они должны быть, что дает другой хэш CRC и MD5.
Я провел сравнение скопированного и исходного файла с помощью шестнадцатеричного редактора, который подтвердил, что содержимое идентично, за исключением дополнительных случайных байтов, добавленных в конце скопированной версии. Когда я обрезал файл, чтобы удалить лишние байты, два файла дали один и тот же хэш MD5.
Я понятия не имею, что вызывает эту проблему, поскольку я испытал ее в ряде различных систем и сред с различными конфигурациями брандмауэра / сети. Однако я надеюсь, что это может помочь кому-то еще определить возможную причину.
Ясень
Я не знаю, в чем проблема, но есть подсказка, что 66387968 - это 66373042, округленное до ближайшего 32768. Вы уверены, что чем больше размер файла, тем больше байтов?
Вы смотрите на размер на диске или на атрибут размера? Размер на диске может сильно отличаться, поскольку частично используемый кластер будет регистрироваться как полностью используемый кластер в поле «размер на диске» (таким образом, размер файла будет казаться больше, поскольку кластеры могут использоваться только для хранения части одного файла. ).
Как вы читаете эти лишние «мусорные» символы? Потому что, если вы проверяли кластеры напрямую (с использованием HEX-редактора с возможностью открывать диск напрямую, а не файл), они могли остаться от предыдущих файлов, которые занимали физическое дисковое пространство ...
Я подозреваю, что между двумя машинами есть какая-то проблема - насколько безопасна ваша сетевая инфраструктура? Вы могли бы проверить это, зашифровав соединения от каждой машины к сети?
Обе машины 32-битные или 64-битные? Я мог бы видеть, что это может быть проблемой, если один из них 64-битный, а другой 32-битный.
У меня тоже была эта проблема, и хотя я не смог определить, почему это происходит или как это исправить, я нашел решение.
На удаленном компьютере вы можете получить доступ к локальному компьютеру в проводнике Windows, используя псевдоним компьютера «\ tsclient», поэтому, чтобы открыть локальную папку C: \ Temp, перейдите в \ tsclient \ c \ temp на удаленном компьютере. Копирование на локальный компьютер и с него с помощью этого метода, похоже, не повреждает файлы.
Это требует, чтобы перед подключением вы сделали свои локальные диски доступными для удаленной машины.
(Я предполагаю, что проблема связана с общим буфером обмена между машинами, а при копировании таким образом используется собственный буфер обмена удаленной машины.)
-Frode
Microsoft предлагает исправление, исправляющее эту ошибку: