java获取ftp指定文件_java 连接FTP下载指定目录下的所有符合要求的文件 | 学步园...

这篇博客介绍了如何使用Java编程连接FTP服务器并下载指定目录下所有.txt结尾的文件。首先,通过FTPClient建立连接,然后进入被动模式并设置二进制文件类型。接着,遍历FTP目录中的文件,判断文件扩展名为.txt并下载。最后,提供了一个断开连接的方法。
摘要由CSDN通过智能技术生成

首先需要jar包,下载地址:

变量声明

private FTPClient ftpClient = new FTPClient();

(1)创建连接

/**

*

* java编程中用于连接到FTP服务器

*

* @param hostname

* 主机名

*

* @param port

* 端口

*

* @param username

* 用户名

*

* @param password

* 密码

*

* @return 是否连接成功

*

* @throws IOException

*/

public boolean connect(String hostname, int port, String username,

String password) throws IOException {

ftpClient.connect(hostname, port);

if (FTPReply.isPositiveCompletion(ftpClient.getReplyCode())) {

if (ftpClient.login(username, password)) {

return true;

}

}

disconnect();

return false;

}

(2)获取ftp目录下载该目录下的所有文件。

public boolean download(String remote, String local,String fileFiler) throws IOException, ParseException {

ftpClient.enterLocalPassiveMode();

ftpClient.setFileType(FTP.BINARY_FILE_TYPE);

boolean result = false;

filenum=fileFiler.lastIndexOf('*');

File f = null;

FTPFile[] files = ftpClient.listFiles(remote);

// 获取全部路径

for (int i = 0; i < files.length; i++) {

fileName = files[i].getName();

num=fileName.indexOf('.');

//符合扩展名需求

if(fileName.substring(num).endsWith(".txt"))

{

// 获取文件名

f = new File(local + fileName);

//获取标准文件

long lRemoteSize = files[i].getSize();

try {

//下载过的不在下载了

OutputStream out = new FileOutputStream(f, true);

if (f.length() >= lRemoteSize) {

System.out.println("本地已经存在,下载中止");

}

ftpClient.setRestartOffset(f.length());

result = ftpClient.retrieveFile(remote + fileName, out);

System.out.println(fileName+"下载成功\r\n");

out.close();

} catch (Exception ex) {

}

}

}

return true;

}

(3)关闭连接

/**

* 断开与远程服务器的连接

*

* @throws IOException

*/

public void disconnect() throws IOException {

if (ftpClient.isConnected()) {

ftpClient.disconnect();

}

}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值