当前的定义
ChannelSftp.lstat
详情如下。
public SftpATTRS lstat(String path) throws SftpException {
try {
((MyPipedInputStream)this.io_in).updateReadSide();
path = this.remoteAbsolutePath(path);
path = this.isUnique(path);
return this._lstat(path);
} catch (Exception var3) {
if (var3 instanceof SftpException) {
throw (SftpException)var3;
} else if (var3 instanceof Throwable) {
throw new SftpException(4, "", var3);
} else {
throw new SftpException(4, "");
}
}
}
private SftpATTRS _lstat(String path) throws SftpException {
try {
this.sendLSTAT(Util.str2byte(path, this.fEncoding));
ChannelSftp.Header header = new ChannelSftp.Header();
header = this.header(this.buf, header);
int length = header.length;
int type = header.type;
this.fill(this.buf, length);
if (type != 105) {
if (type == 101) {
int i = this.buf.getInt();
this.throwStatusError(this.buf, i);
}
throw new SftpException(4, "");
} else {
SftpATTRS attr = SftpATTRS.getATTR(this.buf);
return attr;
}
} catch (Exception var6) {
if (var6 instanceof SftpException) {
throw (SftpException)var6;
} else if (var6 instanceof Throwable) {
throw new SftpException(4, "", var6);
} else {
throw new SftpException(4, "");
}
}
}
由于我对java世界非常陌生,我想知道如何覆盖
通道SFTP.lstat
方法,以便在文件不存在时返回false(
ChannelSftp.SSH_FX_NO_SUCH_FILE
)并在所有其他情况下(对于除文件不存在以外的所有异常)抛出
SftpException