FTPとSFTPは異なっていますが、SFTP用のFTPでは "SYST"コマンドと同等の機能があります。私がJSchを使ってSFTP接続をしていて、システムタイプを返そうと思っていたら、どうすればいいですか?私はFTP接続をSFTPに変換しています。 SFTPを使用する方法がない場合は、回避策がありますか?SFTPでシステムタイプを返す方法は?
public String getSystemType()
throws IOException, FtpException
{
if(out == null)
return null;
acquire(); // Acquire the object
try {
ftpCommand("SYST"); //sends command to FTP to retrieve the system type.
if(!reply.substring(0, 3).equals("215"))
throw new FtpException(reply);
} finally {
release(); // Release the object
}
return reply.substring(4);
}
ファイルやディレクトリの情報の結果を場所から解析するには、この "システムタイプ"が必要です。それは、WindowsサーバまたはUNIXサーバであってもよい。そのによって、私は
1)名称
MSDOS形式のリスト
* 3)
が * 4)所有者は、MSDOS形式で利用可能..notタイプ..not利用可能 * 2)許可を取得するために、それを解析する必要がありますMSDOS形式のリスト
* 6)サイズ
* Parse a UNIX format list. With skipping number of lines.
* The columns of a typical UNIX format list is like:
* drwxr-xr-x 6 appli appli 1024 May 17 20:33 java
* -rw------- 1 appli appli 1005 May 1 21:21 mp3list
* drwxr-xr-x 5 appli appli 1024 May 17 16:56 perl
* drwxr-xr-x 6 appli appli 1024 Apr 30 23:18 public_html
// Some UNIX format list doesn't contain the column for group like this:
// -rw-r--r-- 1 daemon 0 Dec 7 10:15 .notar
// -r--r--r-- 1 daemon 828 Mar 30 1995 HOW_TO_SUBMIT
// -r--r--r-- 1 daemon 627 Mar 30 1995 README
// -r--r--r-- 1 daemon 876 Mar 30 1995 WELCOME
// drwxr-xr-x 2 ftp 512 Oct 13 1999 bin
実際にそのシステムタイプが必要ですか、それとも単なる情報ですか?戻り値をダミーテキストで置き換えることができますか?それでも動作しますか?リモートサーバーのシステム記述に依存するコードは、私にはやや脆いようです。 – cello
@celloファイルやディレクトリに関する情報を返すための "LIST"を実行する別の関数があります。それは戻り文字列を解析するために使用されています。古いFTPクラスでは、UNIX形式かMS-DOS形式かどうかを確認するメソッドがあります。これがSFTPに必要かどうかはわかりません。私はただメソッドをそのまま保ち、その内部のプロセスをSFTPに変換しようとしていました。 –
あなたの編集内容(ファイルやディレクトリに関する情報の解析について)があなたの質問に関係しているかどうか分かりません。 –