2017-08-15 651 views
2

我正在写一些Java代码(使用JSch库)到SFTP到远程Windows计算机并将文件复制到我的本地Windows文件夹。SFTP路径格式与本地路径格式

指定远程计算机上文件的路径时,我强制指定格式为/C/temp/myfile.txt而不是C:\temp\myfile.txt的路径。

问题:

  1. 你能告诉我这种格式是什么?有没有一个名字?

  2. 你能告诉我,如果有可能使用任何其他格式的路径?我希望能够将路径指定为C:\temp\myfile.txt,所以用户不明白该文件是否从远程计算机进行SFTP处理。我猜我必须解析/分割/替换路径中的字符,因为FTP get命令不会理解此路径格式。

谢谢。

回答

1

/必须被用作路径分隔SFTP协议的任务。

SFTP specification

该协议代表了文件名作为字符串。假定文件名 使用斜杠('/')字符作为目录分隔符。

开始以斜线

文件名是“绝对”,而且是相对于 文件系统的根目录。以任何其他字符 开头的名称都与用户的默认目录(主目录)有关。注意 假定标识用户发生在这个 协议之外。


这是真正的操作系统特定的路径映射服务器的文件系统的语法,符合SFTP规范的SFTP服务器。

您必须使用服务器作者选择使用的语法。

所以在任何情况下,你必须映射到\/。您可能需要删除:。尽管这实际上可以配置。许多(特别是Windows)SFTP服务器都有一个配置,允许您将虚拟SFTP路径映射到实际路径。在这种情况下,您可能能够将/C:/映射到C:\

在任何情况下,你的问题其实不是JSch,只让Java的,但你的SFTP服务器。

参见常见问题解答的WinSCP SFTP客户端:How do I change drive on the remote panel?

+0

谢谢你的信息! –