【发布时间】:2018-01-12 15:02:33
【问题描述】:
例如,如果我通过 FTP 移动文件,我认为这并不能保证文件的完整性,让我需要对文件发送方/接收方进行某种检查(例如校验和)。
如果我在网络上移动文件,有人可以告诉我 System.File.Move 的 .net 实现是否有任何类型的文件完整性检查(请注意本地网络,但网络仍然......)。校验和什么的?
【问题讨论】:
-
据我所知,自 1.0 以来,它只是 DOS 的一部分的 Move 命令。有它的所有限制。 ROBOCOPY 之类的工具可能是此类工作的更好工具,但您可能必须使用控制台编辑才能从中获取任何有用的数据。
-
它只是
MoveFile的包装,完全受文件系统过滤器和驱动程序的支配。所以简短的回答是“不,它一般没有办法做到这一点”。 -
FTP 使用 TCP/IP 并且 TCP/IP 确实有校验和,所以我很确定 FTP 也能保证文件完整性(只要你能保证它)。当然,没有任何协议可以保护您免受磁盘故障的影响。
-
@Wazner:就其价值而言,TCP/IP 校验和不是很大,因此仍然可能发生错误。当然,它们很少见。在使用计算机网络的几十年中,我只有一个文件传输损坏。但是,人们发布 MD5 或 SHA 哈希值的关键文件是有原因的。