• ftp



    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.net.SocketException;

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


    /**
    * ftp客户端
    *
    * @author Yuedong Li
    *
    */
    public class tools {
    private FTPClient client;

    public tools(String host, String userName, String password)
    throws SocketException, IOException {
    initFtpClient(host, 21, userName, password);
    }

    public tools(String host, int port, String userName, String password)
    throws SocketException, IOException {
    initFtpClient(host, port, userName, password);
    }

    /**
    * 登录
    *
    * @param host
    * @param port
    * @param userName
    * @param password
    * @throws SocketException
    * @throws IOException
    */
    public void initFtpClient(String host, int port, String userName,
    String password) throws SocketException, IOException {
    client = new FTPClient();
    client.connect(host, port);
    client.login(userName, password);
    }

    /**
    * 得到所有目录
    *
    * @param remotePath
    * @return
    * @throws IOException
    */
    public FTPFile[] listFiles(String remotePath) throws IOException {
    if (client == null)
    return null;
    client.changeWorkingDirectory(remotePath);
    return client.listFiles();
    }

    /**
    * 上传
    *
    * @param localPath
    * 本地路径
    * @param remotePath
    * ftp路径
    * @return 上传是否成功
    * @throws IOException
    */
    public boolean upload(String localPath, String remotePath)
    throws IOException {
    if (client == null)
    return false;
    boolean res = false;
    FileInputStream fileInputStream = new FileInputStream(localPath);
    int index = remotePath.lastIndexOf('/');
    if (index != -1) {
    client.setFileType(FTP.BINARY_FILE_TYPE);
    client.changeWorkingDirectory(remotePath.substring(0, index));
    res = client.storeFile(remotePath.substring(index + 1),
    fileInputStream);
    }
    fileInputStream.close();
    return res;
    }

    /**
    * 下载
    *
    * @param remotePath
    * ftp路径
    * @param localPath
    * 本地路径
    * @return 下载是否成功
    * @throws IOException
    */
    public boolean download(String remotePath, String localPath)
    throws IOException {
    if (client == null)
    return false;
    boolean res = false;
    FileOutputStream fileOutputStream = new FileOutputStream(localPath);
    res = client.retrieveFile(remotePath, fileOutputStream);
    fileOutputStream.flush();
    fileOutputStream.close();
    return res;

    }

    /**
    * 删除文件
    *
    * @param remotePath ftp端路径
    * @return
    * @throws IOException
    */
    public boolean delete(String remotePath) throws IOException {
    if (client == null)
    return false;

    return client.deleteFile(remotePath) || deleteDirectory(remotePath);
    }

    /**
    * 创建目录
    *
    * @param remotePath
    * @throws IOException
    */
    public boolean makeDirectory(String remotePath) throws IOException {
    if (client == null)
    return false;

    String[] item = remotePath.split("/");
    String currentPath = "";
    for (int i = 0; i < item.length - 1; i++) {
    currentPath = currentPath + "/" + item[i];
    client.makeDirectory(currentPath);
    }

    return client.makeDirectory(remotePath);
    }


    /**
    * 删除文件
    *
    * @param remotePath ftp端路径
    * @return
    * @throws IOException
    */
    private boolean deleteDirectory(String remotePath) throws IOException {
    FTPFile[] files = listFiles(remotePath);
    for (int i = 0; i < files.length; i++) {
    if (files[i].isDirectory()) {
    deleteDirectory(remotePath + "/" + files[i].getName());
    } else {
    client.deleteFile(remotePath + "/" + files[i].getName());
    }
    }
    return client.removeDirectory(remotePath);
    }

    /**
    * 重命名
    *
    * @param remoteOldPath
    * @param remoteNewPath
    * @return
    * @throws IOException
    */
    public boolean rename(String remoteOldPath, String remoteNewPath)
    throws IOException {
    if (client == null)
    return false;
    return client.rename(remoteOldPath, remoteNewPath);
    }

    /**
    * 退出登录
    *
    * @throws IOException
    */
    public void close() throws IOException {
    if (client != null)
    client.logout();
    }
    }

  • 相关阅读:
    人民币格式化 ,分割
    解决IE下页面空白或者报错:[vuex] vuex requires a Promise polyfill in this browser
    js生成图片
    适用于iview的表格转Excel插件
    js金额转大写数字
    webstorm vue cli 热更新不起作用解决办法
    纯css实现 switch开关
    vue 时间戳转 YYYY-MM-DD h:m:s
    Simple2D-20(重构)
    Simple2D-19(音乐播放器)播放器的源码实现
  • 原文地址:https://www.cnblogs.com/helloaworld/p/6247883.html
Copyright © 2020-2023  润新知