问题描述
背景是这样的:远程ftp服务器会更新某目录下的一些文件,本地服务器需要定时下载这些更新后的文件。我的想法是:由最后修改时间判断该文件是不是最新的(用Spring+Quartz定时去ftp服务器看是否有文件可以更新),然后下载更新的文件,这样可避免重复下载。各位有没有类似的程序例子?谢谢了! ftpClient有一种方法是 ftpClient.getModificationTime(String pathname)可以得到文件的最后修改时间Quartz+Spring实现定时任务配置好了,业务逻辑那怎么写 问题补充:huoyj 写道
解决方案
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;大概就是这样的吧,你再看着改改。
解决方案二:
apache的common-net里面有FTPFile类,代表FTP服务器上的一个文件,FTPFile类里面有方法getTimestamp就是获取文件的修改时间的,而你本地的文件File也有类似的方法,你获取到后可以直接比较了。不过你应该注意到一个问题,那就是时区必须一致。
解决方案三:
经你这么的分析,这里面已经没有什么无法解决的技术问题了,随手就能写出代码,为什么还要别人给例子呢。