2017-08-15 185 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

謝謝你的信息! –