1

我正在使用 WinSCP .NET 程序集进行文件下载。现在我需要支持文件恢复功能。

为此,我所做的是

var options = new TransferOptions();
options.ResumeSupport.State = TransferResumeSupportState.On;

在我的下载代码中我已经完成了

 TransferOperationResult transferResult = session.GetFiles(
     _appSettings["SFTP_IncomingFileFolder"] + file.Folder + "/" + file.FileName,
     _appSettings["Local_IncomingFileFolder"] + file.Folder + "\\" + file.FileName +".filepart", false, options);
 transferResult.Check();

现在检查文件是否恢复工作我在下载时断开连接。问题是每次我现在下载它都是从零开始,而不是从它离开的地方开始。

如果本地下载长度为 30 MB,则类似于 100 MB 文件。当我尝试重新连接时,它从零长度开始。

4

1 回答 1

2
  1. .ResumeSupport仅适用于 SFTP 。

  2. 仅当您在下载第一个片段时已经设置了该标志时,它才有效,因此该片段具有.filepart扩展名(应该是这种情况,尽管默认情况下对超过 100 KB 的所有文件都这样做)。

  3. .filepart扩展名是自动添加的。如果您明确添加一个,WinSCP 将查找.filepart.filepart. 所以不要自己添加扩展。

  4. 自 WinSCP 5.9 起支持显式简历。
    TransferOptions.OverwriteMode属性设置为OverwriteMode.Resume


参考:


如果这没有帮助,请启用日志记录 ( Session.SessionLogPath) 并向我们显示日志。

于 2015-09-14T10:36:38.390 回答