添加依赖
// https://mvnrepository.com/artifact/commons-net/commons-net
compile group: 'commons-net', name: 'commons-net', version: '3.6'
// https://mvnrepository.com/artifact/org.apache.commons/commons-lang3
compile group: 'org.apache.commons', name: 'commons-lang3', version: '3.9'
代码示例
package com.xl;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.net.ftp.*;
import java.io.*;
import java.util.TimeZone;
public class FTPTransFile {
private static final String localDir = "F:\\look\\";//传输的源端目录
//destDir路径为搭建FTP服务器时设置的用户的主目录中的共享目录
//如果不是的话changeDir的结果会一直为false
private static final String serverDir = "/pub/";//传输的目的端目录,目录以"/"结束
private static final String host = "192.168.0.101";//目的端的IP地址
private static final int port = 21; //目的端的端口号
private static final String userName = "ftpUser";//目的端的用户名
private static final String passWord = "1234";//目的端的密码
private static final String encoding = "UTF-8";
public static void main(String[] args) throws Exception {
//连接目的端
FTPClient ftpClient = connect(host, port, userName, passWord);
//上传文件夹
//uploadDirectory(ftpClient, localDir, serverDir);
//下载文件夹
downLoadDirectory(ftpClient, localDir, serverDir);
//关闭客户端连接
disconnect(ftpClient);
}
/**
* 连接目的端server
*
* @param host 目的端IP地址
* @param port 目的端端口号
* @param userName 目的端FTP用户名
* @param passWord 目的端FTP密码
* @return 返回FTPClient
*/
public static FTPClient connect(String host, int port, String userName, String passWord) {
FTPClient ftpClient = new FTPClient();
FTPClientConfig ftpClientConfig = new FTPClientConfig();
ftpClientConfig.setServerTimeZoneId(TimeZone.getDefault().getID());
try {
//设置文件传输的编码
ftpClient.setControlEncoding(encoding);
ftpClient.configure(ftpClientConfig);
// 连接 FTP 服务器,如果采用默认端口,可以使用ftp.connect(url)的方式直接连接FTP服务器
ftpClient.connect(host, port)<