我在公司有一台 Windows Vista Business 机器,在家里有一台 Windows XP Professional 机器。两者都已更新到最新版,但问题仍然存在。症状如下:
- 当我从 XP 连接到 Vista 时就会发生这种情况;
- 我将文件从 Vista 框复制到 XP 框;
- 这种情况仅当我通过 Windows 资源管理器复制文件时才会发生。如果我使用 Far Manager,即使关闭了“使用系统复制例程”,也不会发生这种情况;
- 文件末尾附加了一些随机垃圾字节。PHP 文件似乎会附加 NULL 字节(零);二进制文件只会附加垃圾字节。
- 文件越大,附加的字节就越多(并且它似乎与硬盘上的任何块大小或任何东西都不对应)
比如,我刚刚复制了一个 MP3 文件。在 Vista 系统上的大小是 66 373 042 字节,但在 XP 系统上复制时,大小是 66 387 968 字节。
我在 Google 上找不到类似的东西。有什么想法吗?
答案1
听起来很像我在 microsoft.com 上发现的这个问题: 在 Windows 终端服务中使用 RDC 复制某些文件后发生损坏
由于 Visa 和 2008 拥有共同的基础,因此很有可能同一个错误同时影响它们。
我想指出的一点是,使用文件大小来判断文件是否正常并不是一个好的解决方案。每次 WAN 传输时,我都会使用 md5 或 sha 哈希值。我使用开源工具 md5deep 来生成和检查哈希值。如果您出于某种原因不喜欢 md5deep,还有很多其他哈希工具可供选择。
答案2
我在将文件复制到 Windows 7 (RTM) 64 位主机和 Windows XP 32 位客户端(或从中复制文件)时遇到了完全相同的问题。某些复制文件的文件大小大于应有的大小,从而产生了不同的 CRC 和 MD5 哈希值。
我使用十六进制编辑器对复制文件和原始文件进行了比较,确认除了复制版本末尾附加的额外随机字节外,内容完全相同。当我截断文件以删除额外字节时,这两个文件给出了相同的 MD5 哈希值。
我不知道是什么导致了这个问题,因为我在多个不同的系统和环境中都遇到过这个问题,这些系统和环境的防火墙/网络配置各不相同。但我希望这可以帮助其他人找出可能的原因。
灰
答案3
我不知道问题是什么,但有一点提示是 66387968 是 66373042 四舍五入到最接近的 32768。你确定文件越大得到的字节就越多吗?
答案4
我怀疑两台机器之间可能存在某种问题 - 您的网络基础设施有多安全?您可以通过加密从每台机器到网络的连接来测试这一点吗?