android JSCH Sftp打印工作目录

mec1mxoz  于 2023-03-11  发布在  Android
关注(0)|答案(2)|浏览(116)

在apache commons net ftpclient中,有一个ftpClient.printWorkingDirectory()函数用于获取当前目录的字符串。
我怎样才能用jsch sftp客户端实现同样的事情呢?有一个叫做realpath(String)的方法,但它似乎不正确,我无法让它工作。
有什么建议吗?

wmvff8tz

wmvff8tz1#

SFTP没有当前目录或“工作目录”的概念,这就是为什么你什么也找不到。SFTP中的所有路径必须是绝对的。相对路径的使用不是由标准定义的,而是特定于服务器的(因此,当你在不同的服务器上做同样的操作时,你可能会大吃一惊)。

kqlmhetl

kqlmhetl2#

使用ChannelSftp#pwd()方法。

JSch jsch = new JSch();
Session jschSession = jsch.getSession(username, remoteHost);
jschSession.setPassword(password);
jschSession.connect();
ChannelSftp channelSftp = (ChannelSftp) jschSession.openChannel("sftp");
channelSftp.connect();

channelSftp.cd("/tmp/");
System.out.println(channelSftp.pwd()); // prints: /tmp

channelSftp.disconnect();
jschSession.disconnect();

我使用的是版本0.1.55:

<dependency>
    <groupId>com.jcraft</groupId>
    <artifactId>jsch</artifactId>
    <version>0.1.55</version>
</dependency>

相关问题