【问题标题】:C# .NET System.Io.File.Move() does it guarantee file integrity on transfer?C# .NET System.Io.File.Move() 是否保证传输时文件的完整性?
【发布时间】: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 哈希值的关键文件是有原因的。

标签: c# .net


【解决方案1】:

取决于用于移动文件的协议。

Microsoft SMB 协议(最常见的协议)确实可以保证文件的完整性。它还支持文件锁定,这意味着在通过网络移动/上传文件时,其他人无法修改或部分读取文件。

来源:https://msdn.microsoft.com/en-us/library/windows/desktop/aa365233(v=vs.85).aspx

【讨论】:

    猜你喜欢
    • 2021-04-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-18
    • 1970-01-01
    相关资源
    最近更新 更多