2017-08-15 53 views
2

SFTPにJavaコード(JSchライブラリを使用)をリモートの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仕様に準拠構文にサーバのファイルシステム上の実際のOS固有のパスをマップSFTPサーバです。

サーバーの作成者が使用した構文を使用する必要があります。

いずれにしても\/にマッピングする必要があります。

:を削除する必要があります。それは実際に構成可能ですが。多くの(特にWindows)SFTPサーバーには、仮想SFTPパスを実際のパスにマップするための設定があります。その場合、/C:/C:\に割り当てることができます。

いずれの場合でも、あなたの質問は実際にはJSchについてではなく、JavaだけでなくSFTPサーバーに関するものです。

WinSCPのSFTPクライアントのFAQを参照してください:How do I change drive on the remote panel?

+0

は、情報をありがとう! –

関連する問題