Скопируйте файл на удаленный сервер с помощью WinSCP .NET Assembly

Я использовал WinSCP .NET Assembly в одном из своих проектов для передачи файлов с одного FTP-сервера на другой. Теперь я хочу скопировать файл из одного каталога в другой (оба находятся на одном FTP-сервере). Я нашел в сборке WinSCP .NET следующий метод:

MoveFile(string sourcePath, string targetPath)

Но он перемещает файл из исходного каталога в целевой путь (удаляется из исходного пути), тогда как я хочу сохранить копию на обоих путях.

Я обнаружил, что в клиенте WinSCP есть метод под названием duplicate, который выполняет операцию копирования, но недоступен в сборке.

Есть ли способ сохранить исходный файл в исходном пути и создать копию в месте назначения?

Примечание.

Мой вопрос относится к сборке WinSCP .Net. Я не спрашиваю о протоколе FTP.


person Jordan    schedule 24.07.2018    source источник


Ответы (1)


Используйте Session.DuplicateFile метод:

public void DuplicateFile(string sourcePath, string targetPath)

Однако обратите внимание, что это работает, только если сервер действительно поддерживает дублирование, чего не делает большинство серверов.

В то время как функция GUI «Дублировать» вернется к «скачиванию и выгрузке» (так называемому «Дублировать через локальную временную копию» в графическом интерфейсе). В сборке .NET вы можете сделать то же самое, используя Session.GetFiles и _ 4_, Session.DuplicateFile не сделает это за вас автоматически.

person Martin Prikryl    schedule 24.07.2018
comment
Спасибо за поддержку. я также обнаружил, что DuplicateFile (string sourcePath, string targetPath); Функция доступна в последней версии сборки (5.13.3). Это соответствует той же концепции дублирования через локальную временную копию? - person Jordan; 24.07.2018
comment
Правда! Совсем забыл, что DuplicateFile уже выпущен. Я обновил свой ответ. - person Martin Prikryl; 24.07.2018