求助文件内容发生改变的原因

MuteG 2010-06-07 01:54:13
程序对一个文件进行了如下操作:
1、利用FTP协议,从网络(局域网)上下载了一个文件,19k大小,放置在A文件夹。
2、下载完毕后,下载到本地的文件同原文件比较MD5码,这时MD5码一致。
3、把下载到本地文件拷贝到B_tmp文件夹。
4、将B_tmp文件夹重命名为B。使用的是MoveFile函数。
5、将文件从B文件夹移动到C文件夹。
6、人工操作,进入C文件夹,将文件剪切,并粘贴到B文件夹。
1~5都是程序做的动作,6是人工操作的。
最终结果是,一系列动作结束后,B文件夹中的文件内容已经发生了改变,变为54k大小,且查看现在文件和原文件的二进制码,差别巨大,MD5自然也不同了。

大家帮忙分析一下,文件内容为什么会发生改变?
领导追问原因,憋了好几天了……
...全文
217 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
bdmh 2010-06-07
  • 打赏
  • 举报
回复
如果只是拷贝文件的话,如果拷贝的正确,应该不会出现内容改变,用流操作时容易改变内容,特别是对buffer的操作
MuteG 2010-06-07
  • 打赏
  • 举报
回复
非常非常感谢大家的意见。
说明一下,这次发生的这个异常情况,是一个小概率事件,我们的这个程序已经按照我描述的动作处理过几十万个这样的文件了,就是这次突然产生了一个异常的文件。
具体原因我们还在分析,代码也在检查。
各位老大帮忙想想,按照各位以往的经验来看,怎样的操作,容易造成文件内容改变?
另外,时间戳是个很好的细节,我这就去看看文件的时间戳,能不能帮助定位产生异常的时间点。
不过时间戳本身倒真的不会引起MD5的变化,文件名的变化也不会影响MD5.
再次感谢大家的帮忙。
bdmh 2010-06-07
  • 打赏
  • 举报
回复
想找明原因就一步步去检测,知道发现md5变化那一步,然后再研究
haitao 2010-06-07
  • 打赏
  • 举报
回复
文件的创建时间,不应该在文件的内容里啊
文件的创建时间的改变,不应该导致文件内容的md5的改变啊
亮剑_ 2010-06-07
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 sz_haitao 的回复:]

数据文件,不应该在内容里有一个自动变化的时间戳啊
[/Quote]
文件本身的时间戳是有的,比如从FTP上取下来,文件的创建时间就是取下的时间(Windows)
haitao 2010-06-07
  • 打赏
  • 举报
回复
数据文件,不应该在内容里有一个自动变化的时间戳啊
bdmh 2010-06-07
  • 打赏
  • 举报
回复
即使内容一样,文件还包含一个时间戳,你移动,复制,剪切都有可能引起时间戳的变化

1,593

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 网络通信/分布式开发
社区管理员
  • 网络通信/分布式开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧