加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java ftp客戶端

发布时间:2020-12-15 03:21:58 所属栏目:Java 来源:网络整理
导读:今天PHP站长网 52php.cn把收集自互联网的代码分享给大家,仅供参考。 apache commons-net可以很方便的实现,但是这个第三方包中对文件夹的删除与创建(级联)操作并不是特别的方便。删除文件夹必须保证该文件夹下没有任何

以下代码由PHP站长网 52php.cn收集自互联网

现在PHP站长网小编把它分享给大家,仅供参考

apache commons-net可以很方便的实现,但是这个第三方包中对文件夹的删除与创建(级联)操作并不是特别的方便。删除文件夹必须保证该文件夹下没有任何 文件,创建文件夹也必须要求父文件夹存在。为了方便以后使用方便,对其进行了简单的封装,主要针对删除与文件夹创建。代码如下:
    package cn.androiddevelop.io;  
      
    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 FtpClient {  
        private FTPClient client;  
      
        public FtpClient(String host,String userName,String password)  
                throws SocketException,IOException {  
            initFtpClient(host,21,userName,password);  
        }  
      
        public FtpClient(String host,int port,port,password);  
        }  
      
        /** 
         * 登录 
         *  
         * @param host 
         * @param port 
         * @param userName 
         * @param password 
         * @throws SocketException 
         * @throws IOException 
         */  
        public void initFtpClient(String host,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();  
        }  
    }  

以上内容由PHP站长网【52php.cn】收集整理供大家参考研究

如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读