6
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

JavaでFTP接続してファイルを取得する

Last updated at Posted at 2015-10-06

ファイル取得等はあっちこっちに書かれてるから省略。
あまり見つからなかったプロキシ経由で接続したい時と、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);
		}
		// このあとファイルの取得など
		・・・
6
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?