ファイル取得等はあっちこっちに書かれてるから省略。
あまり見つからなかったプロキシ経由で接続したい時と、FTPFileFilterの実装についてメモ。
- プロキシ経由で接続したいとき
// FTPクライアント作成
FTPClient ftpClient = new FTPClient();
try {
// プロキシ経由で接続
if (proxyHost != null && !proxyHost.equals("")) {
ftpClient = new FTPHTTPClient(proxyHost, proxyPort);
ftpClient.connect(ftpHost);
ftpClient.login(user, passwd);
} else {
ftpClient.connect(ftpHost);
ftpClient.login(user, passwd);
}
・・・
- FTPFileFilter
FTPサーバに接続後、お目当てのファイルを取得するのにフィルタをかけられる。
// ファイルフィルタ
FTPFileFilter filter = new FTPFileFilter() {
@Override
public boolean accept(FTPFile ftpFile) {
// 正規表現でマッチさせたファイルを取得
Pattern pattern;
pattern = Pattern.compile("^[0-9a-zA-Z].txt$");
return (ftpFile.isFile() && pattern.matcher(ftpFile.getName()).find());
}
};
ftpClient.enterLocalPassiveMode();
ftpClient.setFileType(FTP.BINARY_FILE_TYPE);
FTPFile[] result;
if (filter != null && !filter.equals("")) {
result = ftpClient.listFiles(targetDir, filter);
} else {
result = ftpClient.listFiles(targetDir);
}
// このあとファイルの取得など
・・・