c# - 将文件复制到远程并创建目录和递归复制
问题描述
我正在使用 SSH.NET 使用ScpClient
. 这工作正常。但是,如果我想将文件复制到尚不存在的目标,似乎没有办法创建目标路径。我认为这是因为它是 SCP 本身的限制。
有没有办法解决这个问题,还是我需要先使用SshClient
任何mkdir
必要的路径?
此外,似乎没有办法递归地复制文件(-r 标志),而是我必须单独复制文件。情况也是这样吗?
编辑:有ScpClient.Upload()
一个源和目标路径,所以可以做到。
SSH.NET github 页面上的文档非常有限。
解决方案
首先,如果您有 SCP,那么您很可能也有 SFTP。SFTP 和 SCP 通常都带有 SSH 服务器。因此,如果您也有 SFTP,请使用它,因为 SFTP 是一个完整的协议,不仅支持文件传输(与 SCP 不同),还支持所有其他文件操作,如目录创建。
或者,正如您所发现的,如果您有 shell 访问权限(如果您有 SCP 访问权限,这也很常见),请使用 shell 命令直接创建(即mkdir
在 Linux shell 上)。
推荐阅读
- ruby-on-rails - 发送了表单参数,但其中一个在控制器中接收为 nil
- mongodb-atlas - 连接到 Mongo Atlas 中学
- python - 如何为输入重复输入
- c - 如何为C中的文件行分配内存?
- visual-studio-code - 如何让 cmd+c 在 macOS 的 VS Code 终端中发送 ctrl+c?
- laravel - 我正在尝试使用 HTML 创建 PDF
- php - 具有比较运算符和小数位的 PHP 脚本逻辑
- r - 根据另一个数据帧中的字符串对R中列表中的多个数据帧进行子集化
- python - AWS Lambda 初始化代码(Python)之谜
- powershell - 如何使用 PowerShell 指定 FolderBrowserDialog 中显示的初始路径