package com.jin.demo.ftp;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPFile;
import java.io.*;
public class UploadDownload {
private FTPClient ftp;
public static void main(String[] args) throws IOException {
UploadDownload ud = new UploadDownload();
ud.initFtp();
ud.upload("/data/upload", new File("F://data//upload//testFile.txt"));
ud.download("/data/download", "F://data//download");
ud.closeFtp();
}
public void initFtp() throws IOException {
ftp = new FTPClient();
ftp.setControlEncoding("UTF-8");
ftp.connect("192.168.0.100", 21);
ftp.login("jin01", "123456");
ftp.setFileType(FTPClient.BINARY_FILE_TYPE);
ftp.enterLocalPassiveMode();
System.out.println("登录状态:" + ftp.getReplyString());
}
public void upload(String directory, File file) throws IOException {
ftp.makeDirectory(directory);
ftp.changeWorkingDirectory(directory);
ftp.storeFile(file.getName(), new FileInputStream(file));
System.out.println("上传结果状态:" + ftp.getReplyString());
}
public void download(String directory, String localDirectory) throws IOException {
OutputStream out = null;
ftp.changeWorkingDirectory(directory);
FTPFile[] files = ftp.listFiles();
for (FTPFile ftpFile: files) {
String fileName = ftpFile.getName();
String LocalFile = localDirectory + File.separator + fileName;
out = new FileOutputStream(LocalFile);
ftp.retrieveFile(fileName, out);
if(out != null){
out.flush();
out.close();
}
System.out.println("下载结果状态:" + ftp.getReplyString());
}
}
public void closeFtp() throws IOException {
if(ftp != null && ftp.isConnected()){
ftp.logout();
ftp.disconnect();
}
}
}