FTPClientでPutした時に、転送先のディレクトリが無い場合、エラーになってしまうので、転送する前にディレクトリを作成する必要があって、そのことについて質問です。
FTPClientに、makeDirectoryメソッドがありますが、
これは、2階層以上同時にディレクトリを作ることはできますか?
個人的に試したのですが、1階層では作成できますが、
2階層だとエラーになります。
これは、仕様なのか、私のやり方が悪いのか分からなかったので教えて下さい。
仮に、2階層作成するのができない場合、ディレクトリ(例foo/bar)を/で区切って、1階層作成して、そこに移動、また1階層ディレクトリを作成を繰り返すという方法が一般的でしょうか?
makedirectoryを便利にラップしたメソッドがあれば教えて下さい。
また、makedirectoryは、既にディレクトリがある状態で実行するとエラーになりますが、
転送先にディレクトリがあるかどうか調べる方法があれば教えて下さい。(Fileクラスのexistsメソッドのような)
たくさんの質問で申し訳ないですが、よろしくお願いします。
http://commons.apache.org/net/api/org/apache/commons/net/ftp/FTP...
>FTPClientに、makeDirectoryメソッドがありますが、
>これは、2階層以上同時にディレクトリを作ることはできますか?
たぶん、できない。
http://akky.cjb.net/mfc/makedir.html
こんな感じで、自前で作ってしまうほうが早いかと。
>仮に、2階層作成するのができない場合、ディレクトリ(例foo/bar)を/で区切って、
>1階層作成して、そこに移動、また1階層ディレクトリを作成を繰り返すという方法が一般的
>でしょうか?
たぶんYES。
>転送先にディレクトリがあるかどうか調べる方法があれば教えて下さい
public String getStatus(String pathname)
とか使ってみても無理ですか?
なければ、ファイル一覧を取得して存在チェックするメソッドを作るとか。
KUROXさんいつもありがとうございます。
>たぶん、できない。
やはりそうですか。。URLを参考に自作します。
>public String getStatus(String pathname)
戻りがStringで、どんな文字列が返ってくるか不明なので敬遠してました。
調べて見ます。だめなら、ファイル一覧取得して調べます。(最悪、MKDがエラーになってもFTP自体は落ちないので、そのままにすることも検討。ただし最後の手段)
その他、分かったことは、FTPサーバーによっては、設定しだいで複数階層作ることもできるみたいです。