S_a_k_Uの日記みたいなDB

~サクゥーと呼ばないで~

commons-netのFTPで日本語のディレクトリ名を取り扱う

commons-net-1.4.1
org.apache.commons.net.ftp.FTPClientクラスを使用して、FTPコマンドを実行する場合。
cwdメソッドにて、カレントディレクトリを日本語(マルチバイト?)のディレクトリに変更すると、レスポンスコード550が返ってくる。
setControlEncodingメソッドにて、文字コードを指定(WindowsサーバのためWindows-31J)しているにもかかわらず…
いろいろ検索してみた所、setControlEncodingメソッドを実行する際、connectメソッドの前に呼び出さなければならないらしい。
参考サイト:
commons-net.jarでダウンロード - 心のおもむくままに


それから、各コマンドのintの戻り値での処理結果の判定は、org.apache.commons.net.ftp.FTPReply#isPositiveCompletionメソッドで行う。

参考サイト:
@IT > 過去からの贈り物「FTP〜前編」FTPのレスポンスコード一覧