zoukankan      html  css  js  c++  java
  • 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();
    }
    }

  • 相关阅读:
    部署asp.net网站若干记录
    部署asp.net网站容易忽视的问题
    我的wp记录WordPress3.0导航菜单图文使用教程
    问题org.apache.catalina.core.StandardWrapperValve invoke 严重: Servlet.service() for servlet jsp threw exception
    spring + hibernate 配置
    FlexPaper二次开发简单收尾
    C++集成设计环境——Code::Blocks安装过程
    onlineDoc修改
    问题java.net.ConnectException: connection failed: socket,host=localhost,port=8100,tcpNoDelay=1
    解决java web项目导入后出现的问题 cannot be read or is not a valid ZIP file
  • 原文地址:https://www.cnblogs.com/helloaworld/p/6247883.html
Copyright © 2011-2022 走看看