[size=x-small][color=blue]背景是这样的:
远程ftp服务器会更新某目录下的一些文件,本地服务器需要定时下载这些更新后的文件。
我的想法是:由最后修改时间判断该文件是不是最新的(用Spring+Quartz定时去ftp服务器看是否有文件可以更新),然后下载更新的文件,这样可避免重复下载。
各位有没有类似的程序例子?
谢谢了!
ftpClient有一种方法是 ftpClient.getModificationTime(String pathname)可以得到文件的最后修改时间
Quartz+Spring实现定时任务配置好了,业务逻辑那怎么写[/color][/size]
[code="java"]FileObject localFile = localfiles.get(key);
FileObject remoteFile = remotefiles.get(key);
if(localFile==null&&remoteFile!=null) //如果本地没有文件,就下载
{
//download
return;
}else if(remoteFile==null) //远程文件被删就不用下载了
{
return;
}
//根据本地和远程文件的最后修改时间判断下不下载。
long localFileTime = localFile.lasttime;
long remoteFileTime = remoteFile.lasttime;
if(localFileTime<remoteFile) //本地文件较旧
{
//download
return ;
}
return;[/code]
大概就是这样的吧,你再看着改改。
经你这么的分析,这里面已经没有什么无法解决的技术问题了,随手就能写出代码,为什么还要别人给例子呢。
apache的common-net里面有FTPFile类,代表FTP服务器上的一个文件,FTPFile类里面有方法getTimestamp就是获取文件的修改时间的,而你本地的文件File也有类似的方法,你获取到后可以直接比较了。
不过你应该注意到一个问题,那就是时区必须一致。