我想监视频道的状态,但它会继续打印-1。 我在代码中使用它,它工作得很好。它成功传输文件。它应该返回0但它一直返回-1。知道为什么吗?
channelSftp = (ChannelSftp) session.openChannel("sftp");
this.timeout = session.getTimeout();
System.out.println(channelSftp.getExitStatus());
channelSftp.connect();
System.out.println(channelSftp.getExitStatus());
channelSftp.cd(path);
System.out.println(channelSftp.getExitStatus());
is = channelSftp.get(filename);
System.out.println(channelSftp.getExitStatus());
答案 0 :(得分:0)
Channel.getExitStatus
返回通道的退出状态,而不是先前的SFTP请求。在渠道关闭之前,退出状态未定义(-1
表示的内容):
检索与此通道对应的远程命令的退出状态。退出状态仅适用于某些类型的频道,仅在频道关闭后(更准确地说,就在频道关闭之前)。
ChannelSftp.connect
,ChannelSftp.cd
等所有方法在失败时抛出异常。没有必要检查"状态"在你打电话之后。