美文网首页
edtftpj.jar实现FTP功能

edtftpj.jar实现FTP功能

作者: 胖胖的半山兄 | 来源:发表于2017-06-19 13:46 被阅读0次

公司采用edtftpj.jar实现FTP功能,并封装了一部分方法,例如几种上传下载的模式,其他操作还是得自己写。本文主要记录目录相关的三个方法。

  1. 创建目录
    创建目录,有一个条件:目录不存在
    /**
     * Description: 创建目录 <br>
     * 
     * @author xxx<br>
     * @taskId <br>
     * @param ftpIp <br>
     * @param userName <br>
     * @param password <br>
     * @param fileDir <br>
     */
    public void createFtpDir(String ftpIp, String userName, String password, String fileDir) {
        FileTransferClient ftp = new FileTransferClient();
        try {
            ftp.setRemoteHost(ftpIp);
            ftp.setUserName(userName);
            ftp.setPassword(password);
            ftp.connect();
            // 判断目录是否存在
            if (!checkDirExist(ftp, fileDir)) {
                ftp.createDirectory(fileDir);
            }
        }
        catch (Exception e) {
            logger.error(e);
        }
        finally {
            try {
                ftp.disconnect();
            }
            catch (Exception e) {
                logger.error(e);
            }
        }
    }
  1. 删除目录
    删除目录,有两个条件:
  • 目录存在
  • 目录下无文件
    /**
     * Description: 删除目录 <br>
     * 
     * @author xxx<br>
     * @taskId <br>
     * @param ftpIp <br>
     * @param userName <br>
     * @param password <br>
     * @param fileDir <br>
     */
    public void deleteFtpDir(String ftpIp, String userName, String password, String fileDir)  {
        FileTransferClient ftp = new FileTransferClient();
        try {
            ftp.setRemoteHost(ftpIp);
            ftp.setUserName(userName);
            ftp.setPassword(password);
            ftp.connect();
            // 判断目录是否存在
            if (checkDirExist(ftp, fileDir)) {
                ftp.changeDirectory(fileDir);
                // 删除所有文件 再删除目录
                String[] list = ftp.directoryNameList();
                for (int i = 0; i < list.length; i++) {
                    String remoteFileName = list[i];
                    ftp.deleteFile(remoteFileName);
                }
                ftp.deleteDirectory(fileDir);
            }

        }
        catch (Exception e) {
            logger.error(e);
        }
        finally {
            try {
                ftp.disconnect();
            }
            catch (Exception e) {
                logger.error(e);
            }
        }
    }
  1. 检查文件是否存在
    /**
     * Description: 检查文件是否存在<br> 
     *  
     * @author xxx<br>
     * @taskId <br>
     * @param ftp <br>
     * @param fileDir <br>
     * @return <br>
     */ 
    public boolean checkDirExist(FileTransferClient ftp, String fileDir) {
        boolean isExist = false;
        int index = fileDir.lastIndexOf("/");
        String offerCode = fileDir.substring(index + 1);
        String PFileDir = fileDir.substring(0, index + 1);

        FTPFile[] files = null;
        try {
            ftp.changeDirectory(PFileDir);
            files = ftp.directoryList();
        }
        catch (FTPException e) {
            logger.error(e);
        }
        catch (IOException e) {
            logger.error(e);
        }
        catch (ParseException e) {
            logger.error(e);
        }
        for (FTPFile ftpFile : files) {
            if (offerCode.equals(ftpFile.getName())) {
                isExist = true;
                break;
            }
        }
        return isExist;
    }

本文主要意图在于纠正原本代码用 ftp.directoryList(fileDir).length != 0来判断目录是否存在的不严谨


相关文章

  • edtftpj.jar实现FTP功能

    公司采用edtftpj.jar实现FTP功能,并封装了一部分方法,例如几种上传下载的模式,其他操作还是得自己写。本...

  • 网络应用层协议

    FTP:文件传输协议(File Transfer Protocol,FTP):用于实现交互式文件传输功能 DNS:...

  • python生成简单的FTP弱口令扫描

    前言 Ftp这个类实现了Ftp客户端的大多数功能,比如连接Ftp服务器、查看服务器中的文件、上传、下载文件等功能,...

  • 使用comment-net工具实现FTP下载文件

    为了实现一个从FTP地址批量下载文件的功能,使用了comment-net.jar包。 主要实现代码 获得FTP链接...

  • c语言写的 ftp服务器(ftp server)

    用c语言写的 ftp server 服务器,功能很简单,主要实现了以下ftp命令 : PASV LIST CWD ...

  • FTP莫名删文件---SpringMVC配置问题

    1.问题描述 实现功能:使用@Schedule注解定时多线程清理ftp文件产生问题:未知原因莫名清空ftp连接的主...

  • QT5编译使用QFtp

    背景 使用 QNetworkAccessManager 可以实现 Ftp 的上传/下载功能,但它没有提供例如lis...

  • Android FTP 多线程断点续传下载\上传

    最近在给我的开源下载框架Aria增加FTP断点续传下载和上传功能,在此过程中,爬了FTP的不少坑,终于将功能实现了...

  • python paramiko

    使用paramiko库实现FTP功能上传下载文件 import paramiko transport = para...

  • ftp功能小网站(flask实现)

    起因 家里有个退休的主机,打算拿它做ftp服务器,实现文件的同步。由于在局域网中,且该主机使用水晶头线连接,传输速...

网友评论

      本文标题:edtftpj.jar实现FTP功能

      本文链接:https://www.haomeiwen.com/subject/bppgqxtx.html