FTP-使用ftp4j操作FTP_1

说明:jar包版本ftp4j-1.7.2.jar

一、创建项目
    项目名称:ftpdemo
二、添加jar包
    1.在项目中创建lib目录
        /lib
    2.在lib目录下添加jar包
        ftp4j-1.7.2.jar
        junit-4.4.jar        
三、添加属性文件
    1.在项目中创建conf目录
        /conf
    2.在conf目录添加属性文件
        属性文件名称:ftpinfo.properties
        属性文件内容:
        ftp_server_address=ftp://192.168.3.200:21
        ftp_server_username=teacher
        ftp_server_password=*******
四、创建工具类
    1.在src下创建包
        包名:cn.jbit
    2.在包下创建创建工具类
        1.字符串处理工具类
            类名:StringUtils.java
            类内容:
            public class StringUtils {
            
                public static boolean isEmpty(String dir) {
                    if (null != dir || !"".equals(dir)) {
                        return false;
                    }
                    return true;
                }
            
                public static boolean isEmpty(File[] files) {
                    if (null != files) {
                        return false;
                    }
                    return true;
                }
            
                public static boolean isEmpty(String[] dirs) {
                    if (null != dirs) {
                        return false;
                    }
                    return true;
                }
            }
        2.加载属性文件工具类
            类名:PropUtils.java
            类内容:
                /**
                 * 属性文件工具类
                 * @author dengdashuai
                 *
                 */
                public class PropUtils {
                    private static Properties properties = new Properties();
                    private PropUtils(){}
                    static{
                        try {
                            properties.load(PropUtils.class.getClassLoader().getResourceAsStream("ftpinfo.properties"));
                        } catch (IOException e) {
                            e.printStackTrace();
                        }
                    }
                    
                    public static String getString(String key){
                        return properties.getProperty(key);
                    }
                }
        3.操作FTP工具类
            类名:StringUtils.java
            类内容:
                public class FTPUtils {
                    private static FTPUtils ftp;
                    // FTP服务地址
                    private static String ADDRESS;
                    // FTP登录用户名
                    private static String USERNAME;
                    // FTP登录密码
                    private static String PASSWORD;
                
                    // 无参构造
                    private FTPUtils() {
                    }
                
                    /*
                     * 加载
                     *     ftp地址
                     *     ftp登录名
                     *     ftp登录密码
                     */
                    static {
                        ADDRESS = PropUtils.getString("ftp_server_address");
                        USERNAME = PropUtils.getString("ftp_server_username");
                        PASSWORD = PropUtils.getString("ftp_server_password");
                    }
                
                    /**
                     * 实例化对象
                     *
                     * @return FTPUtils
                     */
                    public static FTPUtils getInstance() {
                        if (ftp == null) {
                            ftp = new FTPUtils();
                        }
                        return ftp;
                    }
                
                    /*
                     * 获取FTP客户端对象
                     */
                    private FTPClient getClient() throws Exception {
                        // 创建FTP客户端对象
                        FTPClient client = new FTPClient();
                        // 设置编码
                        client.setCharset("utf-8");
                        // 二进制
                        client.setType(FTPClient.TYPE_BINARY);
                        // 创建URL对象
                        URL url = new URL(FTPUtils.ADDRESS);
                        // 获取端口
                        int port = url.getPort() < 1 ? 21 : url.getPort();
                        // 建立连接
                        client.connect(url.getHost(), port);
                        // 登录
                        client.login(FTPUtils.USERNAME, FTPUtils.PASSWORD);
                        // 客户端对象
                        return client;
                    }
                
                    /*
                     * 注销客户端连接
                     * client:FTP客户端对象
                     */
                    private void logout(FTPClient client) throws Exception {
                        if (client != null) {
                            try {
                                // 有些FTP服务器未实现此功能,若未实现则会出错
                                client.logout(); // 退出登录
                            } catch (FTPException fe) {
                            } catch (Exception e) {
                                throw e;
                            } finally {
                                //判断客户端是否连接,如果已经连接服务返回true,否则返回false
                                if (client.isConnected()) {
                                    // 断开连接
                                    client.disconnect(true);
                                }
                            }
                        }
                    }
                
                    /*
                     * 判断当前为文件还是目录
                     * client:FTP客户端对象 dir:目录
                     */
                    private int getFileType(FTPClient client, String dir) throws Exception {
                        FTPFile[] files = null;
                        try {
                            files = client.list(dir);
                        } catch (Exception e) {
                            return -1;
                        }
                        if (files.length > 1) {
                            return FTPFile.TYPE_DIRECTORY;
                        } else if (files.length == 1) {
                            FTPFile f = files[0];
                            if (f.getType() == FTPFile.TYPE_DIRECTORY) {
                                return FTPFile.TYPE_DIRECTORY;
                            }
                            String path = dir + "/" + f.getName();
                            try {
                                int len = client.list(path).length;
                                if (len == 1) {
                                    return FTPFile.TYPE_DIRECTORY;
                                } else {
                                    return FTPFile.TYPE_FILE;
                                }
                            } catch (Exception e) {
                                return FTPFile.TYPE_FILE;
                            }
                        } else {
                            try {
                                client.changeDirectory(dir);
                                client.changeDirectoryUp();
                                return FTPFile.TYPE_DIRECTORY;
                            } catch (Exception e) {
                                return -1;
                            }
                        }
                    }
                
                    /*
                     * 判断文件或目录是否存在 client:FTP客户端对象 dir:目录
                     */
                    private boolean exists(FTPClient client, String dir) throws Exception {
                        return getFileType(client, dir) != -1;
                    }
                
                    /*
                     * 创建目录 client:FTP客户端对象 dir:目录
                     */
                    private void mkdirs(FTPClient client, String dir) throws Exception {
                        if (dir == null) {
                            return;
                        }
                        dir = dir.replace("//", "/");
                        String[] dirs = dir.split("/");
                        for (int i = 0; i < dirs.length; i++) {
                            dir = dirs[i];
                            if (!StringUtils.isEmpty(dir)) {
                                if (!exists(client, dir)) {
                                    client.createDirectory(dir);
                                }
                                client.changeDirectory(dir);
                            }
                        }
                    }
                
                    /*
                     * 获取FTP目录 url:原FTP目录 dir:目录
                     */
                    private URL getURL(URL url, String dir) throws Exception {
                        String path = url.getPath();
                        if (!path.endsWith("/") && !path.endsWith("//")) {
                            path += "/";
                        }
                        dir = dir.replace("//", "/");
                        if (dir.startsWith("/")) {
                            dir = dir.substring(1);
                        }
                        path += dir;
                        return new URL(url, path);
                    }
                
                    /*
                     * 获取FTP目录
                     * dir:目录
                     */
                    private URL getURL(String dir) throws Exception {
                        return getURL(new URL(FTPUtils.ADDRESS), dir);
                    }

时间: 2024-10-07 20:10:38

FTP-使用ftp4j操作FTP_1的相关文章

cmd 下登陆ftp及相关操作

cmd 下登陆ftp及相关操作 2011-08-09 20:34:28|  分类: 小技巧|字号 订阅 一.举例 假设FTP地址为“ 61.129.83.39”(大家试验的时候不要以这个FTP去试,应该可能密码要改掉.)       1:“开始”-“运行”-输入“FTP”进去cmd界面 2.open 61.129.83.39 如果你的FTP服务器不是用的21默认端口,假如端口是9900,那么此步的命令应在后面空格加9900,即为 open 61.129.83.39 9900 3:它会提示输入用户

小蚂蚁学cURL笔记(3)——cURL对Ftp服务器的操作

对ftp服务器的下载操作方法. 内容很简单,就是几个设置,直接上代码. //初始化 $curlobj=curl_init();  //文件的准确路径url curl_setopt($curlobj,CURLOPT_URL,"http://......"); //不输出head头文件 curl_setopt($curlobj,CURLOPT_HEADER,0); //执行后不打印 curl_setopt($curlobj,CURLOPT_RETURNTRANSFER,1); //重点来了

提供一个对FTP文件各种操作的类

using System; using System.Collections.Generic; using System.Text; using System.IO; using System.Net; namespace BaseInfo { public enum Ftpud { up = 0, down = 1, }; /// <summary> /// /// </summary> public class ftpOperater { private string ftpS

org.apache.commons.net工具下 对ftp的简单操作

/** * 连接ftp服务器 * @param ip IP地址 * @param port 端口号 * @param username 用户名 * @param password 密码 * @param ftpPath ftp子目录 * @throws IOException */ public int connectServer(String ip, int port, String username, String password, String ftpPath) throws IOExc

FTP创建于操作

1,FTP服务创建于配置http://jingyan.baidu.com/article/0a52e3f4230067bf63ed7268.html, 2,FTP操作类 using System; using System.Collections.Generic; using System.Configuration; using System.IO; using System.Linq; using System.Net; using System.Text; using System.Win

FTP服务器常规操作

导读 FTP协议是Internet文件传输的基础,它是由一系列规格说明文档组成,目标是提高文件的共享性,提供非直接使用远程计算机,使存储介质对用户透明和可靠高效地传送数据.下面就由我给大家简单介绍一下FTP服务器的常规操作. 软件包安装 Red Hat Linux自带VSFTP服务器软件,不需要另行安装.如果在安装系统时没有安装VSFTP服务器,可以用rpm安装,也可以利用tar安装.新版的软件包可以到VSFTP的网站http://vsftp.beasts.org/下载.例如安装vsftp-2.

ftp服务通信操作

1.将本地虚拟机网卡设置ip--->2.将虚拟机系统的网卡ip设置--->3.虚拟机设置特定网络模式vm8nat模式: (1) (2) (3) 保证正常互ping 通信, 4.在虚拟机系统中打开vsftp server服务------>见博客站内(FTP服务器--vsftpd的安装和配置) 5.在虚拟机系统中打开ssh server服务------>见博客站内(如何开启SSH SERVER服务) 总结: 即可登录ftp服务,telnet 192.168.2.2 22   (注:保证

ftp 命令行操作 常用命令

> ftp <host> [port] > pwd  # 查看当前目录 > dir  # 查看FTP服务器中的文件及目录 > mkdir <dirname> > cd <dirname> > bin # 采用二进制传输,会加快上传和下载速度 > lcd <local dirname> > !dir # 查看本地文件夹的文件和目录 > put <filename> # 上传文件, 文件要在上面设

FTP-使用ftp4j操作FTP_2

/*                     * 上传目录                      * client:FTP客户端对象                     * parentUrl:父节点URL                     * file:目录                     * del:                     */                    private void uploadFolder(FTPClient client,