如何使用SharpSsh将文件从一个文件夹移动到远程服务器上的另一个文件夹?
我正在尝试将服务器上文件夹中的文件移动到另一个服务器文件夹。
我得到了:
错误:没有pudo encontrar el archivo'/local/opt/oracle/oradata/UTL_DIR/PEDIMENTOS/pedimento.csv'。
找不到文件'/local/opt/oracle/oradata/UTL_DIR/PEDIMENTOS/pedimento.csv'
这是我的代码:
bool sgn = ( n > 0 ) ? 1 : 0;
答案 0 :(得分:0)
我假设您使用的Put方法是将文件从本地计算机(客户端)传输到远程服务器。该方法不适合在远程服务器上移动文件。
要移动文件,您需要使用SSH客户端并发出命令以便远程shell进行解释(如果您知道它的linux,那么运行" mv"在shell中将完成这项工作)或者,如果您没有SSH访问权限,您可以尝试使用支持"重命名"的体面SFTP客户端(例如我们的SecureBlackbox)。 SFTP命令(远程文件可以"重命名"这种方式)。但是,并非所有服务器都支持此命令。
答案 1 :(得分:0)
首先,不要使用SharpSSH,这是一个死的项目。
使用其他SFTP实施。请参阅SFTP Libraries for .NET。
无论如何,如果你必须使用它(出于一个很好的理由),请使用SftpChannel.rename
方法。
您不能使用Sftp
类,因为它不公开该方法。
请参阅jsch\examples\Sftp.cs
示例。简化的代码如下:
Session session=jsch.getSession(pUserName, pHost, 22);
...
session.connect();
...
Channel channel=session.openChannel("sftp");
ChannelSftp c=(ChannelSftp)channel;
...
c.rename(pFilePEDIMENTOS, pFilePROCESADO);
“重命名”或“移动”基本上是相同的操作。 .Put
用于将本地文件上载到远程位置。