package com.company.project.utils;import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPFile;
import org.apache.commons.net.ftp.FTPReply;import java.io.IOException;
import java.util.ArrayList;/*** 列出FTP服务器上指定目录下面的所有文件*/
public class FTPListAllFiles {public FTPClient ftp;public ArrayList<String> arFiles;private static final String FAR_SERVER_URL = "10.*.*.4";private static final int SERVER_PORT = 21;private static final String SERVER_USER = "ftpuser";private static final String SERVER_PWD = "123456";private static final String path = "/data/ftp/";private static final String downloadPath = "";/*** 登陆FTP服务器** @param host     FTPServer IP地址* @param port     FTPServer 端口* @param username FTPServer 登陆用户名* @param password FTPServer 登陆密码* @return 是否登录成功* @throws IOException*/public boolean login(String host, int port, String username, String password) throws IOException {ftp = new FTPClient();//设置超时ftp.setConnectTimeout(60 * 60 * 1000);//设置编码ftp.setControlEncoding("UTF-8");this.ftp.connect(host, port);if (FTPReply.isPositiveCompletion(this.ftp.getReplyCode())) {if (this.ftp.login(username, password)) {this.ftp.setControlEncoding("GBK");return true;}}if (this.ftp.isConnected()) {this.ftp.disconnect();}return false;}/*** 关闭数据链接** @throws IOException*/public void disConnection() throws IOException {if (this.ftp.isConnected()) {this.ftp.disconnect();}}/*** 递归遍历出目录下面所有文件** @param pathName 需要遍历的目录,必须以"/"开始和结束* @throws IOException*/public String List(String pathName) throws IOException {StringBuffer filename = new StringBuffer();if (pathName.startsWith("/") && pathName.endsWith("/")) {String directory = pathName;
//更换目录到当前目录this.ftp.changeWorkingDirectory(directory);ftp.enterLocalPassiveMode(); //开启被动模式,跟端口是否开放有关,更多详情请百度FTPFile[] files = this.ftp.listFiles();if (files != null) {for (int i = 0; i < files.length; i++) {if (files[i].isFile()) {String n = new String(files[i].getName().getBytes("gbk"), "utf-8");if (i == files.length - 1) {filename.append(n );} else {filename.append(n + ",");}}}}}return filename.toString();}//获取指定文件夹内的文件名称public static String getFilenames() {String names = "";FTPListAllFiles f = new FTPListAllFiles();try {if (f.login(FAR_SERVER_URL, SERVER_PORT, SERVER_USER, SERVER_PWD)) {names = f.List(path);}} catch (IOException e) {e.printStackTrace();} finally {try {f.disConnection();} catch (IOException e) {e.printStackTrace();}}return names;}//测试public static void main(String[] args) throws IOException {System.out.println(getFilenames());}
}

加了个注释:

ftp.enterLocalPassiveMode(); //开启被动模式,跟端口是否开放有关,更多详情请百度

java查询ftp路径下所有文件名字相关推荐

  1. Java读取指定路径下的文件列表

    直接贴代码吧.不过这里要做一个简单的说明,对于这个程序,我们必须保证我们在F盘下有一个log_files的文件夹,因为在后面写入文件的时候,如果路径中的文件不存在,是程序可以自动为其添加,但如果没有了 ...

  2. ftp 服务器新建文件夹,ftp服务器路径下新建文件夹

    ftp服务器路径下新建文件夹 内容精选 换一换 单击"源码迁移"后面的,打开如图1所示界面,参数描述如表1所示.配置参数后单击"开始分析".以下内容中的&quo ...

  3. 输入目录路径以及名字,能够将该路径下所有文件的属性打印出来,类似ls -l

    输入目录路径以及名字,能够将该路径下所有文件的树形打印出来,类似ls -l 主函数代码: #include <stdio.h> #include <sys/stat.h> #i ...

  4. Java 获取linux根目录下的文件夹_Linux-包教包会系列

    前言 以前我的不喜欢用 Linux 系统,什么目录啊,文件啊,权限啊,都得命令操作,入门难度较大.但是一旦熟练起来,真不想再去用 windows 了.再加上 shell 脚本,那才叫如虎添翼啊,真的是 ...

  5. java在FTP服务器创建文件夹,java在ftp服务器上创建文件夹

    java在ftp服务器上创建文件夹 内容精选 换一换 启动目的端时失败,错误码:SMS.3103,提示迁移失败原因"对目的服务器重新建立引导失败".启动目的端后,系统会重新安装目的 ...

  6. android读取SDCard任意路径下的文件

    2019独角兽企业重金招聘Python工程师标准>>> 文件不能太大否则会报内存溢出 [java]  view plain copy package yu.bin; import j ...

  7. Java实现指定目录下的文件查找

    Java实现指定目录下的文件查找 入门Java实现文件的查找功能较为简单,主要有以下两种: 1.给出文件名,查找目录及其子目录中是否存在 2.给出后缀名,查找目录及其子目录中相关的文件 题型一: 题目 ...

  8. 删除指定路径下的文件

    string pathstr = System.Web.HttpContext.Current.Server.MapPath("/FilePath"); if (Directory ...

  9. 如何在ftp服务器下查找文件夹,查找ftp服务器下的文件夹名

    查找ftp服务器下的文件夹名 内容精选 换一换 Linux x86-64(64位)服务器,常见的有EulerOS.Ubuntu.Debian.CentOS.OpenSUSE等.Windows 7及以上 ...

最新文章

  1. 为模型推断的端部的大小
  2. MYSQL学习笔记 (三)JOIN用法
  3. 微型计算机技术第三版第三章答案,第3章微机组装技术作业(答案)
  4. CF1100F Ivan and Burgers
  5. 面进了心心念念的国企!以为TM上岸了!干了1年!我却再次选择回到互联网大厂内卷!...
  6. 将安卓手机打造成你的python全栈开发利器
  7. tensorflow的基础
  8. 请教关于 license.licx 不能转换成2进制文件!(c# 开发web应用程序)
  9. JS继承之寄生类继承
  10. HDU-ZZY的爱好
  11. 全网搜索 6.0 - 超级网搜 SuperSearch 最新版 - 主要更新内容
  12. openlayers学习——13、openlayers比例尺
  13. 20162327WJH 实验三 《敏捷开发与XP实践》 实验报告
  14. Phalcon 上传文件
  15. photoshop复制图层快捷键总结
  16. ArcGisPro脚本工具【7】——通过高德地图API获取公交线路
  17. 计算机图形学5--绘制基本图元
  18. 前端笔记 (持续更新~)
  19. 【Linux系列】安装配置Nginx
  20. 工控通讯经历1:(C#)三菱FX5U-32M与上位机通讯(超详细!)

热门文章

  1. Kafka集群的安全认证机构 SASL_SCRAM
  2. 怎么申请企业电子邮箱?TOM企业邮箱注册电子邮件流程详解
  3. java计算今天是今年的第几周_java calendar类根据当前日期时间,计算当前日期在当前月是第几周,与周跨月问题,...
  4. 《大数据时代》---- 读书笔记
  5. 跳楼撞墙挖地道坐热气球:东德人穿越柏林墙的古怪方法
  6. 【转】回字有四种写法,那你知道单例有五种写法吗
  7. FTP自动上传/下载对应目下多个人间
  8. JavaScript IndexedDB 完整指南
  9. 梁建章:我的鼠标 水泥《前程密码》
  10. python小数乘法计算_小学数学所有的知识点都在这里,期末复习必备!