将文件复制到远程并创建目录和递归复制

Copying files to remote and creating directories and recursive copying

我正在使用 SSH.NET 使用 ScpClient 复制文件。这很好用。但是,如果我想将文件复制到尚不存在的目的地,似乎没有办法创建目的地路径。我认为这是因为它是 SCP 本身的限制。

是否有解决此问题的方法,或者我是否需要使用 SshClient 首先 mkdir 任何必要的路径?

此外,似乎没有递归复制文件的方法(-r 标志),而是我必须单独复制文件。也是这样吗?

编辑:ScpClient.Upload() 包含源路径和目标路径,因此可以完成。

SSH.NET github 页面上的 documentation 非常有限。

首先,如果您有 SCP,您很可能也有 SFTP。 SFTP 和 SCP 通常都带有 SSH 服务器。因此,如果您也有 SFTP,请使用它,因为 SFTP 是一个完整的协议,不仅支持文件传输(与 SCP 不同),还支持所有其他文件操作,例如目录创建。


或者,如您所知,如果您有 shell 访问权限(这也很常见,如果您有 SCP 访问权限),请使用 shell 命令直接创建(即mkdir 在 Linux shell 秒)。