Возобновление файла WinSCP .NET не работает во время загрузки

Я использовал сборку 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();

Теперь, чтобы проверить, работает ли файл, я отключаюсь во время загрузки. Проблема в том, что каждый раз, когда я сейчас загружаю, он начинается с нуля, а не с того места, где он был.

Как и для файла размером 100 МБ, если локальная загруженная длина составляет 30 МБ. Когда я пытаюсь переподключиться, он начинается с нулевой длины.


person Kamran Shahid    schedule 14.09.2015    source источник


Ответы (1)


  1. .ResumeSupport работает только для SFTP.

  2. Это работает только в том случае, если вы уже установили этот флаг при загрузке первой части, так что часть имеет расширение .filepart (хотя это должно быть так, поскольку по умолчанию это делается для всех файлов более 100 КБ).

  3. Расширение .filepart добавляется автоматически. Если вы добавите его явно, WinSCP будет искать .filepart.filepart. Так что не добавляйте расширение самостоятельно.

  4. Явное возобновление поддерживается, начиная с WinSCP 5.9.
    Установите TransferOptions.OverwriteMode свойство на OverwriteMode.Resume.


Ссылка:


Если это не поможет, включите ведение журнала (Session.SessionLogPath) и покажите нам журнал.

person Martin Prikryl    schedule 14.09.2015