cundeng 发表于 2015-5-29 06:36:08

JAVA FTP 客户端 .


[*]private FTPClient connectFtp(){
[*]    FTPClient ftp = null;
[*]    String user = "";
[*]    String password = "";
[*]    String server = "";
[*]    int port = "21";
[*]    String root = "/";
[*]      
[*]    ftp=new FTPClient();
[*]    ftp.addProtocolCommandListener(new ProtocolCommandListener() {
[*]      String message = "";
[*]      public void protocolCommandSent(ProtocolCommandEvent event) {
[*]            message = event.getMessage();
[*]            if ("pass".equalsIgnoreCase(event.getCommand())) {
[*]                // 隐藏密码   
[*]                message = message.substring(0, message.indexOf(" ")) + " ******";
[*]            }
[*]            System.out.println(message);
[*]      }
[*]      public void protocolReplyReceived(ProtocolCommandEvent event) {
[*]            System.out.println(event.getMessage());
[*]      }
[*]    });
[*]    try {
[*]      int reply;
[*]      ftp.connect(server, port);
[*]         
[*]      reply = ftp.getReplyCode();
[*]      System.out.println("reply code: "+reply);
[*]      String msg;
[*]      if (!FTPReply.isPositiveCompletion(reply)) {
[*]            ftp.disconnect();
[*]            msg="FTP服务器拒绝访问";
[*]            System.out.println(msg);                  
[*]      }
[*]      if (!ftp.login(user, password)) {
[*]            ftp.logout();
[*]            msg="用户名或者密码错误";
[*]            System.out.println(msg);            
[*]      }
[*]         
[*]      //设置ftp的工作目录   
[*]      String[] folders = root.split("/");
[*]      for (int i = 0; i < folders.length; i++) {
[*]            String folder=folders;
[*]            if(folder.trim().length()==0)
[*]                continue;
[*]            
[*]            if (!ftp.changeWorkingDirectory(folder)) {
[*]                if (ftp.makeDirectory(folder)) {
[*]                  if (!ftp.changeWorkingDirectory(folder)) {
[*]                        msg="不能转到" + folder + "目录";
[*]                        System.out.println(msg);                     
[*]                  }
[*]                } else {
[*]                  msg="不能在ftp服务器上建立" + folder + "目录";
[*]                  System.out.println(msg);
[*]                }
[*]            }
[*]      }
[*]      System.out.println("Current working directory: "+ftp.printWorkingDirectory());            
[*]    } catch (IOException e) {
[*]      e.printStackTrace();
[*]      System.out.println("connectFtp发生异常"+ e.getMessage());
[*]      disconnectFtp(ftp);
[*]    }
[*]    return ftp;
[*]}
[*]
[*]private void disconnectFtp(FTPClient ftp ){
[*]    if(ftp!=null && ftp.isConnected()){
[*]      try {
[*]            ftp.disconnect();
[*]      } catch (IOException e) {
[*]      }
[*]    }
[*]}
[*]
[*]private void uploadFile(File file, String fileAlias,FTPClient ftp) {
[*]    String filename=fileAlias;      
[*]    try {
[*]      filename = new String(filename.getBytes(), "iso8859_1");
[*]    } catch (UnsupportedEncodingException e) {
[*]      filename=fileAlias;
[*]    }
[*]      
[*]    InputStream istream=null;         
[*]    try {
[*]      String msg;
[*]      System.out.println("Working Directory: "+ftp.printWorkingDirectory());
[*]      ftp.setFileType(FTP.BINARY_FILE_TYPE);
[*]      ftp.setControlEncoding("GBK");
[*]      istream = new FileInputStream(file);
[*]      ftp.storeFile(filename, istream);
[*]         
[*]    } catch (IOException e) {
[*]      e.printStackTrace();
[*]      System.out.println("uploadFile()发生异常"+ e.getMessage());
[*]         
[*]    } finally {
[*]      if(istream!=null)
[*]            try {
[*]                istream.close();
[*]            } catch (IOException e1) {
[*]            }
[*]    }            
页: [1]
查看完整版本: JAVA FTP 客户端 .