apache FTP 文件过滤

package org.ilp.utils;

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;

import org.apache.commons.net.ftp.FTP;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPFile;
import org.apache.commons.net.ftp.FTPListParseEngine;
import org.apache.commons.net.ftp.FTPReply;
import org.ilp.utils.ftp.filter.FTPFileFilterImpl;

public class FtpTest {

	public static void main(String[] args) {
		FTPClient ftp = new FTPClient();
		try {
			int reply;
			ftp.connect("192.168.0.190", 21);
			ftp.login("ftpuser", "123456x");
			ftp.enterLocalPassiveMode();
			ftp.setFileTransferMode(FTP.STREAM_TRANSFER_MODE);
			ftp.setFileType(FTP.BINARY_FILE_TYPE);
			ftp.setRemoteVerificationEnabled(false);
			reply = ftp.getReplyCode();
			if (!FTPReply.isPositiveCompletion(reply)) {
				ftp.disconnect();
				System.err.println("FTP服务器拒绝连接!");
				System.exit(1);
			} else {
				// 跳转到指定目录下
				boolean flag = ftp.changeWorkingDirectory("/TEST/IN/");
				if (!flag) {
					ftp.makeDirectory("/TEST/IN/");
				}
				// 默认获取当前目录
				FTPListParseEngine engine = ftp.initiateListParsing();
				// 分页获取文件
				// FTPFile[] files = engine.getNext(10);
				// 自定义过滤器
				FTPFileFilterImpl filter = new FTPFileFilterImpl();
				// 按文件名称过滤
				filter.setFileName("DEBMAS");
				FTPFile[] files = engine.getFiles(filter);
				for (FTPFile ftpFile : files) {
					if (ftpFile.isFile()) {
						InputStream retrieveFileStream = ftp.retrieveFileStream(ftpFile.getName());
						BufferedReader reader = new BufferedReader(new InputStreamReader(retrieveFileStream, "UTF-8"));
						String line;
						StringBuilder builder = new StringBuilder();
						while ((line = reader.readLine()) != null) {
							builder.append(line);
						}
						reader.close();
						if (retrieveFileStream != null) {
							retrieveFileStream.close();
						}
						ftp.completePendingCommand();
						String xml = builder.toString();
						System.out.println(ftpFile.getName() + ":" + xml);
					}
				}
			}
			ftp.logout();
		} catch (Exception e) {
			System.out.println(e.getMessage());
		} finally {
			if (ftp.isConnected()) {
				try {
					ftp.disconnect();
				} catch (Exception ioe) {

				}
			}
		}

	}

}
package org.ilp.utils.ftp.filter;

import org.apache.commons.net.ftp.FTPFile;
import org.apache.commons.net.ftp.FTPFileFilter;

public class FTPFileFilterImpl implements FTPFileFilter {

	private String fileName;

	@Override
	public boolean accept(FTPFile file) {
		String name = file.getName();
		if (name.startsWith(fileName)) {
			return true;
		}
		return false;
	}

	public String getFileName() {
		return fileName;
	}

	public void setFileName(String fileName) {
		this.fileName = fileName;
	}

}

 

 

猜你喜欢

转载自pengbaowei0311.iteye.com/blog/2416117
今日推荐