3

Apache(commons-net)が提供するFTPライブラリを使用しています。FTPサーバーにファイルが存在するかどうかを確認したいので、次のlistFiles方法を使用しFTPClientます。

ftpClient.listFiles(remoteFileDir + "\\" + fileName);

現在のディレクトリはFTPサーバーのルートディレクトリです。したがって、の値はremoteFileDirこのルートディレクトリからの相対パスです。

私の質問は、リモートディレクトリパスとファイル名のマージに関するものです。それを行う正しい方法は何ですか?ローカルファイルの場合、次のようにします。

File file = new File(remoteFileDir,fileName);

しかし、ここでは、を呼び出すとfile.getAbsolutePath()、ローカルの現在のディレクトリにあるファイルの絶対パスを取得するため、機能しません。これは、必要なものではありません。また、私の地域の環境に合わせてマージが行われていると思います。

PS:リモートマシンでパスがどのように決定されるかを見ましたか?しかし、それは私を助けません。

ありがとう

4

1 に答える 1

1

FTPClientのメソッドchangeWorkingDirectoryを見つけました。

ftpClient.changeWorkingDirectory(remoteFileDir);
FTPFile[] names = ftpClient.listFiles(fileName);

この場合、区切り文字を指定する必要はありません。

于 2012-07-02T09:14:22.970 に答える