获取ftp上文件的最后修改时间

  1. /**
  2.  * 
  3.  */
  4. package com.zjpii.hxj.util;
  5. import java.io.IOException;
  6. import java.net.SocketException;
  7. import java.text.SimpleDateFormat;
  8. import java.util.Date;
  9. import java.util.HashMap;
  10. import java.util.Map;
  11. import org.apache.commons.net.ftp.FTPClient;
  12. import org.apache.commons.net.ftp.FTPFile;
  13. /**
  14.  * 对ftp上的文件进行操作的类
  15.  * 使用Apache的commons-net-1.4.1.jar包
  16.  * @author hxj
  17.  * @date 2008-11-1
  18.  *
  19.  */
  20. public class FtpUtil {
  21.     
  22.     /**
  23.      * 获取ftp上文件的最后修改时间
  24.      * @param host     ftp主机地址 e.g. "127.0.0.1"
  25.      * @param username 用户名      e.g. "username"
  26.      * @param password 密码        e.g. "passowrd"
  27.      * @param path     文件路径    e.g. "ftputil/test.txt"
  28.      * @return Date 如果连接成功返回java.util.Date时间,如果连接失败返回null
  29.      * @throws IOException 
  30.      * @throws SocketException 
  31.      */
  32.     public Date getFileLastModifiedTime(String host,String username,String password,String path) throws SocketException, IOException{
  33.         Date lastModifiedDate = null;
  34.         FTPClient ftpClient = new FTPClient();
  35.         ftpClient.connect(host);
  36.         boolean isLogin = ftpClient.login(username, password);
  37.         //连接ftp失败返回null
  38.         if(!isLogin){
  39.             ftpClient.disconnect();
  40.             ftpClient = null;
  41.             return null;
  42.         }
  43.         //获取ftp上path路径下的文件
  44.         FTPFile[] fileList = ftpClient.listFiles(path);
  45.         for (int i = 0; i < fileList.length; i++) {
  46.             lastModifiedDate = fileList[i].getTimestamp().getTime();
  47.         }
  48.         return lastModifiedDate;
  49.     }
  50.     
  51.     /**
  52.      * 获得ftp路径下面所有文件的修改时间
  53.      * @param host     ftp主机地址 e.g. "127.0.0.1"
  54.      * @param username 用户名      e.g. "username"
  55.      * @param password 密码        e.g. "passowrd"
  56.      * @param path     文件路径    e.g. "ftputil"
  57.      * @return java.util.Map 连接成功返回一个key是文件名,value是最后修改时间(java.util.Date)的一个map;连接失败返回null
  58.      * @throws SocketException
  59.      * @throws IOException
  60.      */
  61.     public Map getAllFileLastModifiedTime(String host,String username,String password,String path) throws SocketException, IOException{
  62.         Date lastModifiedDate = null;
  63.         FTPClient ftpClient = new FTPClient();
  64.         ftpClient.connect(host);
  65.         boolean isLogin = ftpClient.login(username, password);
  66.         //连接ftp失败返回null
  67.         if(!isLogin){
  68.             ftpClient.disconnect();
  69.             ftpClient = null;
  70.             return null;
  71.         }
  72.         //获取ftp上path路径下的文件
  73.         FTPFile[] fileList = ftpClient.listFiles(path);
  74.         //HashMap容量:fileList.length
  75.         Map map = new HashMap(fileList.length);
  76.         for (int i = 0; i < fileList.length; i++) {
  77.             lastModifiedDate = fileList[i].getTimestamp().getTime();
  78.             //key 文件名;value修改时间(java.util.Date)
  79.             map.put(fileList[i].getName(), lastModifiedDate);
  80.         }
  81.         return map;
  82.     }
  83.     
  84.     /**
  85.      * @param args
  86.      */
  87.     public static void main(String[] args) {
  88.         FtpUtil ftpUtil = new FtpUtil();
  89.         try {
  90.             String host = "134.98.8.214";
  91.             String username = "hz";
  92.             String password = "hz";
  93.             SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:dd");
  94.             Date date =ftpUtil.getFileLastModifiedTime(host, username, password, "qxtmp/wangjun-test.txt");
  95.             System.out.println("method1:"+dateFormat.format(date));
  96.             
  97.             Map map = ftpUtil.getAllFileLastModifiedTime(host, username, password, "qxtmp");
  98.             System.out.println(map.size());
  99.             System.out.println("method2:"+dateFormat.format(map.get("ipashd.txt")));
  100.             
  101.         } catch (SocketException e) {
  102.             e.printStackTrace();
  103.         } catch (IOException e) {
  104.             e.printStackTrace();
  105.         }
  106.     }
  107. }

猜你喜欢

转载自blog.csdn.net/chenzhanhai/article/details/7621726