我正在编写一些 Java 代码(使用 JSch 库)通过 SFTP 到远程 Windows 计算机,并将文件复制到我的本地 Windows 文件夹。
当指定远程计算机上的文件路径时,我被迫以以下格式指定路径/C/temp/myfile.txt
代替C:\temp\myfile.txt
.
问题:
你能告诉我这个格式是什么吗?它有名字吗?
您能告诉我是否可以使用任何其他格式的路径吗?我希望能够将路径指定为C:\temp\myfile.txt
,因此用户根本不清楚该文件是否是从远程计算机通过 SFTP 传输的。我猜我必须解析/分割/替换路径中的字符,因为 FTP get 命令无法理解此路径格式。
thanks.
SFTP 协议要求/
必须用作路径分隔符。
See SFTP规范:
该协议将文件名表示为字符串。文件名是
假定使用斜杠(“/”)字符作为目录分隔符。
以斜杠开头的文件名是“绝对”的,并且是相对于
文件系统的根。以任何其他字符开头的名称
相对于用户的默认目录(主目录)。笔记
假设识别用户是在此之外发生的
协议。
SFTP 服务器将服务器文件系统上的真实操作系统特定路径映射为符合 SFTP 规范的语法。
您必须使用服务器作者选择使用的语法。
所以在所有情况下你都必须映射\
to /
.
并且您可能需要删除:
。尽管这实际上是可以配置的。许多(特别是 Windows)SFTP 服务器都有一个配置,允许您将虚拟 SFTP 路径映射到真实路径。在这种情况下,您也许可以映射/C:/
to C:\
.
无论如何,您的问题实际上不是关于 JSch,更不是关于 Java,而是关于您的 SFTP 服务器。
另请参阅常见问题解答myWinSCP SFTP 客户端:如何更改远程面板上的驱动器?
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)