gpt4 book ai didi

windows - 使用 mksnt 工具包的 Windows 上的 JSCH 无法识别目录路径

转载 作者:可可西里 更新时间:2023-11-01 11:47:22 26 4
gpt4 key购买 nike

我有一个使用 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com