FTP Client使用的是Apache Commons Net 3.3

/**

* 检查FTP上指定文件是否存在

* @param remoteFilePartNameList 文件路径

* @throws BusinessException

* @throws IOException

*/

private void checkFtpFileExist(List remoteFilePartNameList) throws BusinessException, IOException {

FTPClient ftp = new FTPClient();

String serverIP = "1.1.1.1";

String serverUserName = "user";

String serverPassword = "pwd";

try {

ftp.connect(serverIP);

ftp.login(serverUserName, serverPassword);

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

ftp.enterLocalPassiveMode();

ftp.setFileType(FTP.BINARY_FILE_TYPE);

StringBuilder sb = null;

for (String remoteFileName : remoteFilePartNameList) {

InputStream inputStream = ftp.retrieveFileStream(remoteFileName);

if (inputStream == null || ftp.getReplyCode() == 550) {

// 文件不存在

if (sb == null) {

sb = new StringBuilder();

}

String[] strings = StringUtils.split(remoteFileName, Constants.SLASH);

sb.append(strings[strings.length - 1]).append(", ");

}

if (inputStream != null) {

inputStream.close();

ftp.completePendingCommand(); // 必须执行,否则在循环检查多个文件时会出错

}

}

if (sb != null && sb.length() > 2) {

sb.setLength(sb.length() - 2);

String notfoundReportPaymentIdStr = sb.toString();

log.error("FTP SERVER上未找到以下文件[" + notfoundReportPaymentIdStr + "]");

String exceptionMessage = i18nServiceImpl.queryValue("E374", "文件{0}不存在!");

throw new BusinessException(StringUtils.replace(exceptionMessage, "{0}", notfoundReportPaymentIdStr));

}

}

else {

log.error("连接FTP SERVER失败,SERVER IP[" + serverIP + "], USER NAME[" + serverUserName + "], Ftp response:" + ftp.getReplyString());

ftp.disconnect();

throw new BusinessException(i18nServiceImpl.queryValue("E373", "连接FTP失败!"));

}

ftp.logout();

}

catch (IOException e) {

log.error("连接FTP SERVER失败,SERVER IP[" + serverIP + "], USER NAME[" + serverUserName + "]", e);

throw e;

}

finally {

if (ftp.isConnected()) {

try {

ftp.disconnect();

}

catch (IOException ioe) {

// do nothing

}

}

}

}

java ftp 判断文件是否存在_FTP判断文件是否存在相关推荐

  1. ftp上传当天文件的方法_ftp自动上传文件,ftp自动上传文件的配置方法及使用教程...

    IIS7服务器管理工具具备所有服务器管理工具的功能,比如批量管理.同时它还有很多的自主研发功能.比如同步操作.到期提醒.数据安全和定期执行.当然适用的系统也有Windows和liunx操作系统.还支持 ...

  2. java ftp主动模式和被动模式_ftp主动模式和被动模式

    对于ftp的印象在于适合传输文件,特别是大量文件的传输时,使用ftp会加快传输速度,且比较稳定. 由于要将系统的大量资源文件迁移到新的服务器上,大概700多G,就在旧服务器上搭建了一个ftp服务器,然 ...

  3. java ftp模糊查询_linux怎么模糊查找一个文件

    在当前目录下搜索指定文件: find . -name test.txt 在当前目录下模糊搜索文件: find . -name '*.txt' 在当前目录下搜索特定属性的文件: find . -amin ...

  4. java ftp主动模式和被动模式_FTP 的主动模式和被动模式

    FTP 是一种基于 TCP 的应用层协议,它不支持 UDP 协议. FTP 工作在一种特殊的服务机制上,它使用两个端口,一个 '数据' 端口和一个 '命令' 端口(也称为控制端口). 通常情况下,端口 ...

  5. java多级目录文件是否存在_Java文件夹操作,判断多级路径是否存在,不存在就创建(包括windows和linux下的路径字符分析)...

    兼容windows和linux. 分析: 在windows下路径有以下表示方式: (标准)D:\test\1.txt (不标准,参考linux)D:/test/1.txt 然后在java中,尤其使用F ...

  6. Java面试题(九)-----编写程序实现判断E: / 根目录下是否有后缀名为.jpg的文件,如果有则输出文件名称

    Java面试题(九)-----编写程序实现判断E: / 根目录下是否有后缀名为.jpg的文件,如果有则输出文件名称 文章目录

  7. java如果判断文件夹或文件不存在就创建文件夹或文件

    java如果判断文件夹或文件不存在就创建文件夹或文件 1.判断文件是否存在,不存在创建文件 File file=new File("e:/cc/cc.jpg"); if(!file ...

  8. java判断是否安装了pdf_java判断上传文件是否为pdf java图像上传中如何判断是否是jpg格式...

    java怎么判断有没有上传文件 Java平台如何判断用户上传的文件是否是图片不要辜负了自己受过的苦难,这样善良又努力的一个你,一定会得到曾梦寐以分享的所有美好. if(typeof FileReade ...

  9. Java 常用的工具类—判断Excel版本读取Excel/CSV文件

    以下内容均来自实际项目需求,记录下,网上找的读取Excel会出现不少问题,下面代码是经过好多次测试改进的符合现在项目的代码,如有不同要求,请自行修改,代码均只去掉了包名. 注:我们的Excel 第一行 ...

最新文章

  1. Datawhale组队学习周报(第013周)
  2. 前端面试被问到性能优化该肿么办!
  3. Cannot start compilation:the output path is not specifired for module “xxx“.Specify the output path
  4. 程序员需要避免的 10 个坏习惯
  5. Docker安装Redis(docker-compose.yml)
  6. 带你自学Python系列(十三):Python函数的用法(三)
  7. python module错误_修复python的ModuleNotFoundError
  8. redis简单使用1
  9. ServiceStack.Redis连接阿里云redis服务时使用连接池出现的问题
  10. 如何利用计算机教室上英语,如何有效利用多媒体进行英语教学
  11. 小程序毕设作品之微信企业公司小程序毕业设计(4)开题报告
  12. CentOS6.9 网络安装及配置
  13. nginx 访问a 域名跳转到b域名_微信qq域名防红防封,怎么才能避免自己的域名被屏蔽...
  14. tableau的动态参数和横向对比堆叠柱形图
  15. win10系统DPC_WATCHDOG_VIOLATION蓝屏靠谱解决办法
  16. 分布式系统关注点——360°的全方位监控
  17. NOIP 2015 d1t2 信息传递
  18. JavaScript 10进制转换为类似‘0x00d5’格式的16进制
  19. 使用DataX将mysql中做数据导出时 提示 java.sql.SQLException: Could not retrieve transation read-only status server
  20. 【python机器学习】——patsy的简介、安装、使用方法之详细攻略

热门文章

  1. Linux下控制环境变量
  2. Apache源码包在LINUX(CENTOS6.8)中的安装(出现问题及解决)
  3. Codeforces Round #563 (Div. 2)/CF1174
  4. 针对七牛含有特殊字符的文件名,对特殊字符编码处理
  5. easyui 报表合并单元格
  6. 敏捷冲刺每日报告四(Java-Team)
  7. MySQL 的“root”用户修改密码
  8. Console-算法-一个偶数总能表示为两个素数之和
  9. JUnit基础及第一个单元测试实例(JUnit3.8)
  10. php内核探索方法与资源