人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Jakarta Commons NET のFTPClientについて質問です(Javaの質問です)。

FTPClientでPutした時に、転送先のディレクトリが無い場合、エラーになってしまうので、転送する前にディレクトリを作成する必要があって、そのことについて質問です。

FTPClientに、makeDirectoryメソッドがありますが、
これは、2階層以上同時にディレクトリを作ることはできますか?

個人的に試したのですが、1階層では作成できますが、
2階層だとエラーになります。
これは、仕様なのか、私のやり方が悪いのか分からなかったので教えて下さい。

仮に、2階層作成するのができない場合、ディレクトリ(例foo/bar)を/で区切って、1階層作成して、そこに移動、また1階層ディレクトリを作成を繰り返すという方法が一般的でしょうか?

makedirectoryを便利にラップしたメソッドがあれば教えて下さい。

また、makedirectoryは、既にディレクトリがある状態で実行するとエラーになりますが、
転送先にディレクトリがあるかどうか調べる方法があれば教えて下さい。(Fileクラスのexistsメソッドのような)

たくさんの質問で申し訳ないですが、よろしくお願いします。


●質問者: nemutaiyo
●カテゴリ:インターネット ウェブ制作
✍キーワード:Bar commons Eクラス Jakarta Java
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● KUROX
●60ポイント

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サーバーによっては、設定しだいで複数階層作ることもできるみたいです。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ