码迷,mamicode.com
首页 > 其他好文 > 详细

FTP下载文件工具类

时间:2017-04-11 16:45:49      阅读:270      评论:0      收藏:0      [点我收藏+]

标签: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 }

 

FTP下载文件工具类

标签:exce   files   jar   bug   成功   logs   password   unix   nec   

原文地址:http://www.cnblogs.com/wbyp/p/6693985.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!