Невозможно архивировать файлы по любому протоколу передачи файлов (SFTP, FTP, SCP или WebDAV). Поэтому в WinSCP такой функции нет, так как она не может быть надежно реализована.
Хотя, если у вас есть доступ к серверу в командной оболочке, вы можете использовать команду оболочки для архивирования файлов. Это фактически то, что делает пользовательская команда Tar / GZip .
Если вы хотите сделать это за один раз (zip-and-download), вам нужно будет реализовать более сложную настраиваемую команду / расширение, которая открывает собственный сеанс для загрузки . Это было бы очень похоже на файлы Pack в ZIP-архив и загрузить его пример. За исключением того, что его использовали бы Session.ExecuteCommand
для выполнения zip
(или аналогичного) на удаленном сервере.
Вы можете написать расширение на любом языке, который вам нравится. PowerShell - это самый доступный язык сценариев Windows с хорошей (нативной) поддержкой .NET. Хотя это можно сделать и в Bash, вы должны использовать локальный сценарий Bash (вы не можете загрузить файл с помощью удаленного сценария Bash). И нет Bash в Windows по умолчанию.