代码之家  ›  专栏  ›  技术社区  ›  Raj

100%万无一失的c#ftp文件传输代码(如有可能,带事务)

  •  3
  • Raj  · 技术社区  · 15 年前

    我想写一个小型的c#ftp客户端类库,它基本上需要将文件传输到ftp位置。

    我想要的是一个100%万无一失的代码,在这里我可以得到某种确认,ftp文件传输已经100%成功或失败。

    很好(但次要):

    某种分布式事务,只有当文件传输成功时,我才用1(true)更新特定文件的db。。。如果失败,则db将更新为0(false)。

    但是假设ftp文件传输成功,但是由于任何原因db无法更新,那么ftp上的文件应该被删除——我可以使用脏c代码轻松地完成这项工作(如果db update失败,我会手动尝试删除文件)。

    但我要找的是基于文件系统的ftp事务。。。因此,文件传输和数据库更新在两者都成功之前都不会提交(因此不需要手动删除)。

    有什么线索吗?

    3 回复  |  直到 4 年前
        1
  •  7
  •   EKS    14 年前

    我自己也曾有过编写FTP库的“乐趣”,这里是我的建议

    1) 这并不容易,因为FTP服务器从同一个命令返回不同的返回(比如目录信息、常规FTP命令等等)。
    2) 这比你想象的要花更多的时间
    3) 100%万无一失传输的梦想不会实现,除非您控制FTP服务器并添加一个新的FTP命令以便比较文件散列。


        2
  •  0
  •   Mud    14 年前

    .NET有一个 FTP client 你可以用。我不知道面对FTP服务器的怪癖它有多强大;你必须在你客户的FTP服务器上测试它。至于验证上载是否成功,您仅有的工具是(1)确保上载过程中没有传输错误,(2)验证 file size 当你做完的时候。

        3
  •  -2
  •   Tinku    15 年前

    尝试将Ftp与WCF结合使用