获取ftp上文件的最后修改时间
程序员文章站
2022-05-24 12:30:48
...
/**
*
*/
package com.zjpii.hxj.util;
import java.io.IOException;
import java.net.SocketException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPFile;
/**
* 对ftp上的文件进行操作的类
* 使用Apache的commons-net-1.4.1.jar包
* @author hxj
* @date 2008-11-1
*
*/
public class FtpUtil {
/**
* 获取ftp上文件的最后修改时间
* @param host ftp主机地址 e.g. "127.0.0.1"
* @param username 用户名 e.g. "username"
* @param password 密码 e.g. "passowrd"
* @param path 文件路径 e.g. "ftputil/test.txt"
* @return Date 如果连接成功返回java.util.Date时间,如果连接失败返回null
* @throws IOException
* @throws SocketException
*/
public Date getFileLastModifiedTime(String host,String username,String password,String path) throws SocketException, IOException{
Date lastModifiedDate = null;
FTPClient ftpClient = new FTPClient();
ftpClient.connect(host);
boolean isLogin = ftpClient.login(username, password);
//连接ftp失败返回null
if(!isLogin){
ftpClient.disconnect();
ftpClient = null;
return null;
}
//获取ftp上path路径下的文件
FTPFile[] fileList = ftpClient.listFiles(path);
for (int i = 0; i < fileList.length; i++) {
lastModifiedDate = fileList[i].getTimestamp().getTime();
}
return lastModifiedDate;
}
/**
* 获得ftp路径下面所有文件的修改时间
* @param host ftp主机地址 e.g. "127.0.0.1"
* @param username 用户名 e.g. "username"
* @param password 密码 e.g. "passowrd"
* @param path 文件路径 e.g. "ftputil"
* @return java.util.Map 连接成功返回一个key是文件名,value是最后修改时间(java.util.Date)的一个map;连接失败返回null
* @throws SocketException
* @throws IOException
*/
public Map getAllFileLastModifiedTime(String host,String username,String password,String path) throws SocketException, IOException{
Date lastModifiedDate = null;
FTPClient ftpClient = new FTPClient();
ftpClient.connect(host);
boolean isLogin = ftpClient.login(username, password);
//连接ftp失败返回null
if(!isLogin){
ftpClient.disconnect();
ftpClient = null;
return null;
}
//获取ftp上path路径下的文件
FTPFile[] fileList = ftpClient.listFiles(path);
//HashMap容量:fileList.length
Map map = new HashMap(fileList.length);
for (int i = 0; i < fileList.length; i++) {
lastModifiedDate = fileList[i].getTimestamp().getTime();
//key 文件名;value修改时间(java.util.Date)
map.put(fileList[i].getName(), lastModifiedDate);
}
return map;
}
/**
* @param args
*/
public static void main(String[] args) {
FtpUtil ftpUtil = new FtpUtil();
try {
String host = "134.98.8.214";
String username = "hz";
String password = "hz";
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:dd");
Date date =ftpUtil.getFileLastModifiedTime(host, username, password, "qxtmp/wangjun-test.txt");
System.out.println("method1:"+dateFormat.format(date));
Map map = ftpUtil.getAllFileLastModifiedTime(host, username, password, "qxtmp");
System.out.println(map.size());
System.out.println("method2:"+dateFormat.format(map.get("ipashd.txt")));
} catch (SocketException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
上一篇: DBCP连接池&&C3P0连接池&&Druid德鲁伊连接池
下一篇: 删除最后修改时间过期的文件
推荐阅读