<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 167,  comments - 30,  trackbacks - 0

    package com.sinovatech.unicom.efb.common;


    import java.io.BufferedOutputStream;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.net.SocketException;

    import org.apache.commons.logging.Log;
    import org.apache.commons.logging.LogFactory;
    import org.apache.commons.net.ftp.FTPClient;
    import org.apache.commons.net.ftp.FTPFile;

    /**
     *
     * 目的:FTP文件類
     * <br/>
     *
     * FTP上傳文件、下載文件
     *
     * *
     */
    public class FTPUtil {
     private static final Log log = LogFactory.getLog(FTPUtil.class);

     public static int download(String ip,int port,String userName,String password,FileFilter filter,String localFilePath) throws SocketException, IOException{
      return download(ip, port, userName, password, null,filter, localFilePath);
     }
     
     public static int download(String ip,int port,String userName,String password,String ftpPath,FileFilter filter,String localFilePath) throws SocketException, IOException{
      FTPClient ftp = new FTPClient();
      int i=0;
       try {
        // 不為空連接 通過IP 和端口
        ftp.connect(ip, port);
        // 登陸
        if (ftp.login(userName, password)) {
         ftp.enterLocalPassiveMode();
         // 獲取FTP登陸目錄下的所有文件
         if(ftpPath!=null){
          if(!ftp.changeWorkingDirectory(ftpPath)){
           throw new RuntimeException("找不到該目錄:"+ftpPath);
          }
         }
         FTPFile[] files = ftp.listFiles();
         for (FTPFile file : files) {
          String fileName = file.getName();
          if (filter.accept(fileName)) {
           BufferedOutputStream out = null;
           try {
            // IO流下載文件到本地
            out = new BufferedOutputStream(
              new FileOutputStream(new File(localFilePath
                ,fileName)));
            // 開始下載
            ftp.retrieveFile(file.getName(), out);
            log.info("下載文件:" + file.getName() + "到本地路徑:"
              + localFilePath);
            i++;
           } finally {
            try {
             if (out != null) {
              out.close();
             }
            } catch (Exception e) {
             log.error("", e);
            }
           }
          }
         }
        } else {
         i = -1;
        }
       } finally {
        if(ftp != null&&ftp.isConnected()){
         try {
          log.info("關閉ftp連接");
          ftp.disconnect();
         } catch (IOException e) {
          e.printStackTrace();
         }
        }
       }
      return i;
     }
     
     public static int download(String ip,int port,String userName,String password,String ftpPath,final String fileName,String localFilePath)throws SocketException, IOException{
      
     
      return  download(ip, port, userName, password,ftpPath,new FileFilter(){

        public boolean accept(String fileName1) {
       
         return fileName.equalsIgnoreCase(fileName1);
        }
        
       }, localFilePath);
     
     }
     
     
     public static int download(String ip,int port,String userName,String password,final String fileName,String localFilePath)throws SocketException, IOException{
      return  download(ip, port, userName, password,null,fileName, localFilePath);
     }

     
     /**
      * ftp上傳文件至服務器
      * @throws SocketException
      * @throws IOException
      */
     public static void uploadFile(String ip, int port, String userName, String password, String localFile)
           throws SocketException, IOException{
      log.info("上傳本地文件: " + localFile);
      File file = new File(localFile);
      InputStream in = null;
      FTPClient ftpClient = null;
      if(file != null){
       try {
        ftpClient = new FTPClient();
        in = new FileInputStream(file);
        ftpClient.connect(ip,port);
        if(ftpClient.login(userName, password)){
         ftpClient.enterLocalPassiveMode();
         boolean flag= ftpClient.appendFile(file.getName(), in);
         log.info("上傳文件成功:" + flag);
        }
       }catch (SocketException e) {
        log.error("ftp上傳文件失敗:", e);
        throw e;
       }catch (IOException e) {
        log.error("ftp上傳文件失敗:", e);
        throw e;
       } finally{
        if(in != null){
         try {
          in.close();
         } catch (IOException e) {
          e.printStackTrace();
         }
        }
        if(ftpClient != null){
         try {
          ftpClient.disconnect();
         } catch (IOException e) {
          e.printStackTrace();
         }
        }
       }
      }
     }
     
     
     public static void upload(String ip, int port, String userName, String password, String path,String remotePath)
     throws SocketException, IOException{
      upload(ip, port, userName, password, new File(path), remotePath);
     }
     
     /**
      * ftp上傳文件至服務器
      * @throws SocketException
      * @throws IOException
      */
     public static void upload(String ip, int port, String userName, String password, File localFile,String remotePath)
           throws SocketException, IOException{
      log.info("上傳本地文件: " + localFile.getName());
      InputStream in = null;
      FTPClient ftpClient = null;
      if(localFile != null){
       try {
        ftpClient = new FTPClient();
        in = new FileInputStream(localFile);
        ftpClient.connect(ip,port);
        if(ftpClient.login(userName, password)){
         ftpClient.enterLocalPassiveMode();
         if(remotePath!=null){
          if(!ftpClient.changeWorkingDirectory(remotePath)){
           ftpClient.makeDirectory(remotePath);
           ftpClient.changeWorkingDirectory(remotePath);
          }
         }
         boolean flag= ftpClient.storeFile(localFile.getName(), in);
         log.info("上傳文件成功:" + flag);
        }
       }catch (SocketException e) {
        log.error("ftp上傳文件失敗:", e);
        throw e;
       }catch (IOException e) {
        log.error("ftp上傳文件失敗:", e);
        throw e;
       } finally{
        if(in != null){
         try {
          in.close();
         } catch (IOException e) {
          e.printStackTrace();
         }
        }
        if(ftpClient != null){
         try {
          ftpClient.disconnect();
         } catch (IOException e) {
          e.printStackTrace();
         }
        }
       }
      }
     }

    }

    posted on 2011-01-21 12:01 David1228 閱讀(2695) 評論(0)  編輯  收藏 所屬分類: J2EE

    <2011年1月>
    2627282930311
    2345678
    9101112131415
    16171819202122
    23242526272829
    303112345

    常用鏈接

    留言簿(4)

    隨筆分類

    隨筆檔案

    文章檔案

    新聞分類

    新聞檔案

    相冊

    收藏夾

    Java

    Linux知識相關

    Spring相關

    云計算/Linux/虛擬化技術/

    友情博客

    多線程并發編程

    開源技術

    持久層技術相關

    搜索

    •  

    積分與排名

    • 積分 - 358616
    • 排名 - 154

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲免费一级视频| 在线免费观看h片| 日韩免费a级毛片无码a∨| 亚洲欧洲自拍拍偷综合| 99久久久国产精品免费蜜臀| 久久久久亚洲AV片无码| 少妇人妻偷人精品免费视频| 亚洲天堂一区二区| 57PAO成人国产永久免费视频| 亚洲av片不卡无码久久| 最近最新MV在线观看免费高清| 亚洲人精品亚洲人成在线| 日韩免费毛片视频| 国产精品亚洲天堂| 区久久AAA片69亚洲| 国内精品久久久久影院免费| 久久精品国产亚洲av麻豆色欲| 亚洲精品免费在线| 亚洲久热无码av中文字幕| 免费a级黄色毛片| 成人免费av一区二区三区| 久久亚洲熟女cc98cm| 在线观看日本免费a∨视频| 精品国产亚洲AV麻豆 | 亚洲欧美黑人猛交群| 国产三级免费电影| 中文字幕在线免费观看视频| 久久久久亚洲精品天堂| 大地资源在线观看免费高清| 黄页视频在线观看免费| 图图资源网亚洲综合网站| 免费看国产精品3a黄的视频| 无遮挡a级毛片免费看| 亚洲人成影院在线| 免费无码又爽又刺激高潮| 野花香高清在线观看视频播放免费| 亚洲无圣光一区二区| 亚洲成a人一区二区三区 | 97无码免费人妻超级碰碰碰碰 | 可以免费观看的一级毛片| 久久国产精品免费看|