- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我有一个使用 mksnt 工具包配置的 Windows 虚拟机。所以这意味着我的路径将变成 C:/abc/xyz
我正在尝试使用 Jsch 实用程序从 linux 机器远程连接到这台 Windows 机器。我能够成功连接,当我尝试检查特定目录路径时,它说它不存在。但是,该路径确实存在于 Windows 框上。
以下是我寻找目标目录的 Jsch 代码 -
SftpATTRS dirAttributes=null;
try{
testLog.info("Looking for directory :"+destinationDir);
dirAttributes = sftpc.stat(destinationDir);
} catch(SftpException s){
testLog.info("Directory does not exists !!!\n"+s.fillInStackTrace().toString());;
} catch (Exception e){
testLog.info("Directory does not exists !!!\n"+e.fillInStackTrace().toString());;
}
如果我执行 Linux <-> Linux 远程调用并验证目录,上面的代码可以无缝运行,但是对于 Linux <-> Windows 我遇到了这个问题。
由于安装了 mksnt,如果我转到目录并执行“pwd” - 它会打印“C:/abc/xyz”
我不清楚 Jsch 是否由于安装了 mksnt 而无法处理或识别路径。任何人都可以分享任何解决方案或提供一些可以帮助我解决此问题的指示。
PS:我无法安装 cygwin 或任何其他工具。这是环境。提供给我,我只需要通过 Jsch 实用程序从 Linux 主机进行远程调用。
最佳答案
C:/abc/xyz
无论 SFTP 服务器的操作系统如何,SFTP 协议(protocol)都对文件路径名使用类 unix 命名方案。在 SFTP 命名方案中,绝对路径名以“/”开头。以“C”开头的名称将引用 SFTP session 工作目录中的文件。
换句话说,基于 Windows 的 SFTP 服务器可能不会按照您期望的方式解释此路径名。您应该使用交互式 SFTP 客户端登录到 Windows SFTP 服务器,找到您感兴趣的文件和/或目录,并确定用于通过 SFTP 访问它们的正确路径。
如果 Windows SFTP 服务器运行的是 Cygwin OpenSSH SFTP 服务器,我相信正确的路径应该类似于“/cygdrive/c/abc/xyz”。
关于windows - 使用 mksnt 工具包的 Windows 上的 JSCH 无法识别目录路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41738615/
我有一个使用 mksnt 工具包配置的 Windows 虚拟机。所以这意味着我的路径将变成 C:/abc/xyz 我正在尝试使用 Jsch 实用程序从 linux 机器远程连接到这台 Windows
我是一名优秀的程序员,十分优秀!