详细内容

项目工作中,需要检验ftp服务器中指定文件是否存在,在网上查阅了相关资料,可以通过ftpClient类进行实现。

免费学习视频教程分享:java课程

具体实现代码:import org.apache.commons.net.ftp.FTP;

import org.apache.commons.net.ftp.FTPClient;

import org.apache.commons.net.ftp.FTPReply;

/**

* 检验指定路径的文件是否存在ftp服务器中

* @param filePath--指定绝对路径的文件

* @param user--ftp服务器登陆用户名

* @param passward--ftp服务器登陆密码

* @param ip--ftp的IP地址

* @param port--ftp的端口号

* @return

*/

public static boolean isFTPFileExist(String filePath,String user,String passward,String ip,int port){

FTPClient ftp = new FTPClient();

try {

// 连接ftp服务器

ftp.connect(ip, port);

// 登陆

ftp.login(user, passward);

// 检验登陆操作的返回码是否正确

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

ftp.disconnect();

return false;

}

ftp.enterLocalActiveMode();

// 设置文件类型为二进制,与ASCII有区别

ftp.setFileType(FTP.BINARY_FILE_TYPE);

// 设置编码格式

ftp.setControlEncoding("GBK");

// 提取绝对地址的目录以及文件名

filePath = filePath.replace("ftp://"+ip+":"+port+"/", "");

String dir = filePath.substring(0, filePath.lastIndexOf("/"));

String file = filePath.substring(filePath.lastIndexOf("/")+1);

// 进入文件所在目录,注意编码格式,以能够正确识别中文目录

ftp.changeWorkingDirectory(new String(dir.getBytes("GBK"),FTP.DEFAULT_CONTROL_ENCODING));

// 检验文件是否存在

InputStream is = ftp.retrieveFileStream(new String(file.getBytes("GBK"),FTP.DEFAULT_CONTROL_ENCODING));

if(is == null || ftp.getReplyCode() == FTPReply.FILE_UNAVAILABLE){

return false;

}

if(is != null){

is.close();

ftp.completePendingCommand();

}

return true;

} catch (Exception e) {

e.printStackTrace();

}finally{

if(ftp != null){

try {

ftp.disconnect();

} catch (IOException e) {

e.printStackTrace();

}

}

}

return false;

}

相关文章教程推荐:java入门教程

java 判断ftp文件是否存在_java如何检验ftp服务器中指定文件是否存在相关推荐

  1. java 判断单元格为空_java – 如何在Apache POI中获取Excel空单元格值?

    我有一个巨大的excel文件与吨的列,看起来像这样: – Column1 Column2 Column3 Column4 Column5 abc def ghi mno pqr ...... 这是我写 ...

  2. java ftp文件大小_java如何获得ftp服务器上指定文件的大小

    我想获得ftp服务器上指定文件的大小 以及下载过程中文件的已完成下载的大小 求教 这个是我写的方法 code:: public static boolean downLoadFtp(String ft ...

  3. Java 判断密码是否是大小写字母、数字、特殊字符中的至少三种

    Java 判断密码是否是大小写字母.数字.特殊字符中的至少三种public class CheckPassword {//数字public static final String REG_NUMBER ...

  4. ftp服务器中更改文件路径,ftp服务器中更改文件路径

    ftp服务器中更改文件路径 内容精选 换一换 文件作用:可以关闭/打开监听端口.指定监听端口.指定监听IP等.文件路径:在运行环境上,在~/ide_daemon目录下查看ide_daemon.cfg配 ...

  5. ftpclient查看服务器文件,使用Apache FtpClient在FTP服务器中计算文件校验和

    我正在使用Apache Commons Net的FtpClient将视频上传到FTP服务器. 要检查文件是否确实已成功传输,我想计算远程文件的校验和,但是很遗憾,我发现没有可以使用的相关API. 我的 ...

  6. 新建一个文件夹服务器,云服务器中新建文件夹命令

    云服务器中新建文件夹命令 内容精选 换一换 部署提供可视化.一键式部署服务,支持并行部署和流水线无缝集成,实现部署环境标准化和部署过程自动化.本节通过以下五步介绍如何使用部署服务将项目代码部署到云主机 ...

  7. 服务器文件权限在哪里,服务器中的文件权限设置在哪里

    服务器中的文件权限设置在哪里 内容精选 换一换 对象存储服务OBS是华为云提供的稳定.安全.高效.易用的云存储服务,具备标准Restful API接口,可存储任意数量和形式的非结构化数据.弹性文件服务 ...

  8. 服务器新建文件命令,云服务器中新建文件夹命令

    云服务器中新建文件夹命令 内容精选 换一换 使用mount命令挂载文件系统到云服务器,云服务器提示access denied,挂载失败.原因1:文件系统已被删除.原因2:执行挂载命令的云服务器和被挂载 ...

  9. linux防止文件被复制,技术|如何在 Linux 系统中防止文件和目录被意外的删除或修改...

    有时,我会不小心的按下 SHIFT+DELETE来删除我的文件数据.是的,我是个笨蛋,没有再次确认下我实际准备要删除的东西.而且我太笨或者说太懒,没有备份我的文件数据.结果呢?数据丢失了!在一瞬间就丢 ...

最新文章

  1. 「AI初识境」激活函数:从人工设计到自动搜索
  2. JZOJ 5660. 【HNOI2018D2T3】道路
  3. 页面加载完后立刻执行JS的两种方法
  4. Linux下sync命令
  5. oracle 11.2 安装asm,oracle11r2安装asm+rac配置步骤.doc
  6. C++ 设置线程名字
  7. 突发! 重庆全面封杀P2P!下一个会是谁?
  8. Java反射机制demo(五)—获得并调用一个类中的方法
  9. 网盘用户分享独播剧链接 百度未及时封禁一审被判赔偿百万余元
  10. python面向对象大段代码_python粗谈面向对象(一)
  11. 【深度优先搜索】计蒜客:踏青
  12. 海湾监控计算机,海湾GST-DH9300电气火灾监控图形显示系统软件
  13. 安装cudnn时, library和deb模式的区别
  14. 怎么成为一名Java架构师 都需要掌握哪些技术
  15. 托物言志--在心为志,发言为诗。
  16. 对“努力就能成功”的一点思考
  17. JGG | 中科院微生物研究所王军团队发现肠系膜淋巴系统可能为肠-肝轴第二通路...
  18. 售价6815万元,95后加密艺术家推出“Dream Chaser”NFT系列作品
  19. Seata遇到的问题
  20. FTP协议(文件传输协议)

热门文章

  1. 2021 46届icpc 南京
  2. TDH中的Workflow
  3. 富途网络科技测试笔试题
  4. 芯片验证漫游指南_博通Wi-Fi芯片被曝安全漏洞,超10亿台终端或受影响,苹果、谷歌、小米、华为等大厂在列...
  5. Elasticsearch-2.4.3的单节点安装(多种方式图文详解)
  6. 区块链为什么这么火?又是一次不可错过的商机?
  7. 使用RDO Packstack在CentOS 8上安装OpenStack Victoria
  8. vue 数字日期时钟
  9. c语言中如何求双胞胎素数,征求好的算法:输出十万以内的双胞胎素数
  10. android 设置空动画,Android WebView 空白等待时加载动画