gpt4 book ai didi

c# - 使用 WinSCP .NET Assembly 防止通过 FTP 传输不完整的文件

转载 作者:行者123 更新时间:2023-11-30 23:10:41 25 4
gpt4 key购买 nike

我只是想使用 windows 服务 将文本文件从一个 FTP 服务器传输到另一个服务器。我从源 FTP 服务器下载所需的文件并将其保存在我的本地系统上,然后将保存的文件上传到目标服务器。我使用 WinSCP .Net Assembly 下载和上传文件。这是我用来将文件传输到目标服务器的代码:

WinSCP.SessionOptions sessionOptions = new WinSCP.SessionOptions();
sessionOptions.Protocol = WinSCP.Protocol.Ftp;
sessionOptions.UserName = "myUsername";
sessionOptions.Password = "myPassword"
sessionOptions.PortNumber = 21;
sessionOptions.HostName = serverIPAddress;

session.Open(sessionOptions);

WinSCP.TransferOptions transferOptions = new WinSCP.TransferOptions();
transferOptions.TransferMode = WinSCP.TransferMode.Binary;
WinSCP.TransferOperationResult transferResult;
transferResult = session.PutFiles(PathToLocalFile + filename, destinationFilePath, false, transferOptions);
transferResult.Check();

它工作正常并将文件上传到服务器,但万一在传输文件时出现连接问题,所需文件的不完整 block 将传输到目标服务器。

我已经搜索了 WinSCP 官方文档,但找不到与此相关的任何内容。

有什么方法可以确保只有完整的文件才能传输到目的地,否则(如果传输过程中发生错误),传输的文件 block 会自动删除吗? (无需手动删除不完整的文件)

最佳答案

没有办法让它自动进行。

您必须对其进行编码。只需检查,如果传输失败,重新连接(如果需要),并删除部分上传的文件。

尽管如评论中所述,如果传输失败,由于连接问题,您可能无法重新连接以删除文件。

没有神奇的解决方案。服务器应该首先能够处理部分文件。

另见:

关于c# - 使用 WinSCP .NET Assembly 防止通过 FTP 传输不完整的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45209447/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com