在传输文件后尝试使用命令
ls
列出远程服务器上的文件时出现问题。
文件已传输完成,但在列出文件时出错。
在出现这个问题之前,它运行成功,这段代码没有任何变化。
不知道为什么会报错。你能帮我看看发生了什么事吗?
if (sftp != null) {
// List files @SFTP After Upload
ChannelSftp channelSftp = null;
channelSftp = (ChannelSftp) sftp.channel;
Vector<ChannelSftp.LsEntry> listFile = channelSftp.ls("*.*");
try {
for (ChannelSftp.LsEntry listItem : listFile) {
String fileName = listItem.getFilename()+"- [ "+listItem.getAttrs().getSize()+"byte ]";
println(fileName);
}
} catch (Exception e) {
println(sftpWorkingPath + " not found.");
}
}
错误信息:
4: java.io.IOException: Pipe closed
at com.jcraft.jsch.ChannelSftp.ls(ChannelSftp.java:1742)
at com.jcraft.jsch.ChannelSftp.ls(ChannelSftp.java:1549)
at com.jcraft.jsch.ChannelSftp$ls$0.call(Unknown Source)
at SCSXXXUpload2SFTP_script_Upload_To_SFTP.run(SCSXXXUpload2SFTP_script_Upload_To_SFTP:50)
Caused by: java.io.IOException: Pipe closed
at java.base/java.io.PipedInputStream.read(PipedInputStream.java:307)
at com.jcraft.jsch.Channel$MyPipedInputStream.updateReadSide(Channel.java:365)
at com.jcraft.jsch.ChannelSftp.ls(ChannelSftp.java:1566)
... 3 more
Exception was thrown from script:
4: java.io.IOException: Pipe closed
ERROR: Error on queue [queue.SCS_UP2SFTP]: Operation script_Upload_To_SFTP failed: 4: java.io.IOException: Pipe closed