如何使用SharpSsh和C#将文件从一个文件夹移动到远程服务器上的另一个文件夹

时间:2015-11-07 15:28:14

标签: c# ssh sftp sharpssh

如何使用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;

2 个答案:

答案 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用于将本地文件上载到远程位置。