FTPClientでIMAGE_FILE_TYPEの定数が使えない

FTPClientでIMAGE_FILE_TYPEの定数が使えない

例えばこういう処理

if (ftpCl.changeWorkingDirectory(path)) {

    ftpCl.setFileType(FTP.IMAGE_FILE_TYPE);

    if (ftpCl.storeFile(makeFileName, uploadFileName)) {
        ftpCl.site("chmod 757 " + makeFileName);
    } else {
        return false;
    }
}

ここで、FTP.IMAGE_FILE_TYPEという定数が無いといわれる。

原因

FTPClientには2つのバージョンが存在する。
Apache Commons Net
・Apache Commons Net 3.6 API
・Commons Net 1.4.1 API

IMAGE_FILE_TYPEの定数が存在するのはCommons Net 1.4.1 APIのバージョンの方のみであり、
Apache Commons Net 3.6 APIのライブラリを使っていたため怒られた。

解決策

Apache Commons Net 3.6 APIの方を用いる場合、
BINARY_FILE_TYPEを用いる。

if (ftpCl.changeWorkingDirectory(path)) {

    ftpCl.setFileType(FTP.BINARY_FILE_TYPE);

    if (ftpCl.storeFile(makeFileName, uploadFileName)) {
        ftpCl.site("chmod 757 " + makeFileName);
    } else {
        return false;
    }
}

エラー・バグ対処カテゴリの最新記事