首页 > 解决方案 > 将文件复制到远程并创建目录和递归复制

问题描述

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

有没有办法解决这个问题,还是我需要先使用SshClient任何mkdir必要的路径?

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

编辑:有ScpClient.Upload()一个源和目标路径,所以可以做到。

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

标签: c#scpssh.net

解决方案


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


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


推荐阅读