标签:exce files jar bug 成功 logs password unix nec
FTP文件下载需要的jar包
commons-net-2.0.jar
有时还需要:jakarta-oro.jar
1 package com.wdxc.util; 2 3 import java.io.File; 4 import java.io.FileOutputStream; 5 import java.io.IOException; 6 import java.io.OutputStream; 7 import java.util.HashMap; 8 import java.util.Map; 9 10 import org.apache.commons.net.ftp.FTPClient; 11 import org.apache.commons.net.ftp.FTPClientConfig; 12 import org.apache.commons.net.ftp.FTPFile; 13 import org.apache.commons.net.ftp.FTPReply; 14 import org.apache.log4j.Logger; 15 16 17 /** 18 * FTP文件下载 19 * @author wangbo 20 * 21 */ 22 public class FTPUtil { 23 24 private static Logger logger = Logger.getLogger(FTPUtil.class); 25 public static Map<String,String> map; 26 public static int port = 21; 27 public static String username = "wangbo"; 28 static{ 29 map = new HashMap<String, String>(); 30 map.put("192..168.0.1", "sdfjhsfsfsadja"); 31 map.put("192..168.0.2", "sdhsakhashja"); 32 map.put("192..168.0.3", "ssssssssssjsa"); 33 34 } 35 36 public static boolean fileDown(String ip,String fileDir,String saveFTPDir){ 37 38 //ftp服务器登录凭证 39 String host = ip; 40 String password = map.get(ip); 41 42 FTPClient ftp = null; 43 44 File file = new File(saveFTPDir); 45 if(!file.exists() && !file.isDirectory()){//如果文件夹不存在则创建 46 logger.debug("文件目录不存在,创建。"); 47 file.mkdirs(); 48 } 49 try{ 50 //ftp的数据下载 51 ftp = new FTPClient(); 52 ftp.connect(host, port); 53 ftp.login(username, password); 54 ftp.setFileType(FTPClient.BINARY_FILE_TYPE); 55 56 //设置linux环境 57 FTPClientConfig conf = new FTPClientConfig( FTPClientConfig.SYST_UNIX); 58 ftp.configure(conf); 59 60 //判断是否连接成功 61 int reply = ftp.getReplyCode(); 62 if (!FTPReply.isPositiveCompletion(reply)){ 63 ftp.disconnect(); 64 logger.debug("FTP服务无法连接!"); 65 return false; 66 } 67 68 //设置访问被动模式 69 ftp.setRemoteVerificationEnabled(false); 70 ftp.enterLocalPassiveMode(); 71 72 //检索ftp目录下所有的文件,这里编码方式有问题(服务器编码?) 73 boolean dir = ftp.changeWorkingDirectory(fileDir); 74 if (dir) { 75 FTPFile[]fs = ftp.listFiles(); 76 for(FTPFile f:fs){ 77 File localFile = new File(saveFTPDir+f.getName()); 78 OutputStream ios = new FileOutputStream(localFile); 79 ftp.retrieveFile(f.getName(), ios); 80 ios.close(); 81 } 82 return true; 83 }else { 84 logger.debug("服务器编码方式可能有问题,请检查!"); 85 return false; 86 } 87 }catch (Exception e){ 88 e.printStackTrace(); 89 logger.debug("ftp下载文件发生异常!"); 90 return false; 91 }finally{ 92 if(ftp != null) try {ftp.disconnect();} catch (IOException ioe) {} 93 } 94 } 95 96 }
标签:exce files jar bug 成功 logs password unix nec
原文地址:http://www.cnblogs.com/wbyp/p/6693985.html