资源简介
远程ftp服务器会更新某目录下的一些文件,本地服务器需要定时下载这些更新后的文件
由最后修改时间判断该文件是不是最新的,然后下载更新的文件,这样可避免重复下载。 有jar包,有实例,完整可运行实例
代码片段和文件信息
package com.cee.ftp;
/**
需要ftp4j.jar
*author ljj
*/
import it.sauronsoftware.ftp4j.FTPAbortedException;
import it.sauronsoftware.ftp4j.FTPClient;
import it.sauronsoftware.ftp4j.FTPDataTransferException;
import it.sauronsoftware.ftp4j.FTPException;
import it.sauronsoftware.ftp4j.FTPFile;
import it.sauronsoftware.ftp4j.FTPIllegalReplyException;
import it.sauronsoftware.ftp4j.FTPListParseException;
import java.io.File;
import java.io.IOException;
import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import com.cee.util.CommonStringDateUtil;
public class FtpTool {
private static FTPClient client = new FTPClient();
/**
* 连接且登录到特定的FTP服务器文件夹
*
* @return
* @throws FTPException
* @throws FTPIllegalReplyException
* @throws IOException
* @throws IllegalStateException
*/
public boolean connectToServer() throws IllegalStateException IOException
FTPIllegalReplyException FTPException {
String server = “192.168.7.53“;
String user = “tfyj“;
String password = “tfyj“;
String path = “/typhoon“; // 要读取的服务器上的目录
client.connect(server);
client.login(user password);
System.out.println(“登陆成功“);
client.changeDirectory(path);
if (client.isCompressionSupported()) {
client.setCompressionEnabled(true);
}
return true;
}
public boolean doUpdate() throws IllegalStateException IOException
FTPIllegalReplyException FTPException FTPDataTransferException
FTPAbortedException FTPListParseException {
Boolean bl = null;
// 取远程文件信息
Mapject> remotefiles = getRemotefiles();
// 取本地文件信息
Mapject> localfiles = getLocalfiles();
// 按远程文件信息对比本地文件信息
Iterator it = remotefiles.keySet().iterator();
while (it.hasNext()) {
String key = (String) it.next();
Fileobject localFile = localfiles.get(key);
Fileobject remoteFile = remotefiles.get(key);
if (localFile == null && remoteFile != null) // 如果本地没有文件,就下载
{
doDownload(remotefiles);
bl = true;
}
// System.out.println(localfiles.get(key).lasttime);
// 根据本地和远程文件的最后修改时间判断下不下载。
Date localFileTime = CommonStringDateUtil.parse(localFile.lasttime);
Date remoteFileTime = CommonStringDateUtil
.parse(remoteFile.lasttime);
if (localFileTime.before(remoteFileTime)) // 本地文件较旧
{
doDownload(remotefiles);
bl = true;
} else {
bl = false;
}
}
return bl;
}
/**
* 取服务器文件
*
* @return
* @throws FTPListParseException
* @throws FTPAbortedException
* @throws FTPDataTransferException
* @throws FTPException
* @throws FTPIllegalReplyException
* @throws IOException
* @throws IllegalStateException
*/
private static Mapject> getRemotefiles()
throws IllegalStateException IOException
FTPIllegalReplyException FTPException FTPDataTransferException
FTPAbortedException FTPListParseExcepti
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 436 2011-12-01 16:28 FtpTest\.classpath
文件 294 2011-12-01 16:28 FtpTest\.myme
文件 1197 2011-12-01 16:28 FtpTest\.project
文件 500 2011-12-01 16:28 FtpTest\.settings\.jsdtscope
文件 330 2011-12-01 16:28 FtpTest\.settings\org.eclipse.jdt.core.prefs
文件 49 2011-12-01 16:28 FtpTest\.settings\org.eclipse.wst.jsdt.ui.superType.container
文件 6 2011-12-01 16:28 FtpTest\.settings\org.eclipse.wst.jsdt.ui.superType.name
文件 36 2011-12-01 16:28 FtpTest\WebRoot\me
文件 705 2011-12-01 16:28 FtpTest\WebRoot\WEB-INF\classes\com\cee\ftp\Fileob
文件 5837 2011-12-01 16:28 FtpTest\WebRoot\WEB-INF\classes\com\cee\ftp\FtpTool.class
文件 1677 2011-12-01 16:28 FtpTest\WebRoot\WEB-INF\classes\com\cee\ftp\Test.class
文件 2263 2011-12-01 16:28 FtpTest\WebRoot\WEB-INF\classes\com\cee\util\CommonStringDateUtil.class
文件 68561 2011-12-01 16:28 FtpTest\WebRoot\WEB-INF\lib\ftp4j-1.6.1.jar
文件 371 2011-12-01 16:28 FtpTest\WebRoot\WEB-INF\web.xm
文件 834 2011-12-01 16:28 FtpTest\WebRoot\index.jsp
文件 965 2011-12-01 16:28 FtpTest\localdir\lat.dat
文件 962 2011-12-01 16:28 FtpTest\localdir\lon.dat
文件 966 2011-12-01 16:28 FtpTest\localdir\t2.dat
文件 7922 2011-12-01 16:28 FtpTest\src\com\cee\ftp\FtpTool.java
文件 1334 2011-12-01 16:28 FtpTest\src\com\cee\ftp\Test.java
文件 2066 2011-12-01 16:28 FtpTest\src\com\cee\util\CommonStringDateUtil.java
目录 0 2011-12-01 16:28 FtpTest\WebRoot\WEB-INF\classes\com\cee\ftp
目录 0 2011-12-01 16:28 FtpTest\WebRoot\WEB-INF\classes\com\cee\util
目录 0 2011-12-01 16:28 FtpTest\WebRoot\WEB-INF\classes\com\cee
目录 0 2011-12-01 16:28 FtpTest\WebRoot\WEB-INF\classes\com
目录 0 2011-12-01 16:28 FtpTest\src\com\cee\ftp
目录 0 2011-12-01 16:28 FtpTest\src\com\cee\util
目录 0 2011-12-01 16:28 FtpTest\WebRoot\WEB-INF\classes
目录 0 2011-12-01 16:28 FtpTest\WebRoot\WEB-INF\lib
目录 0 2011-12-01 16:28 FtpTest\src\com\cee
............此处省略12个文件信息
相关资源
- 基于c/s架构的JAVA聊天程序 ,服务端和
- java 程序工资管理系统
- JAVA实现ftp客户端的上传、、删除
- 购物网站(基于jsp+javabean+mysql三层结
- javaEE复习题
- RefInvoke.java
- 华为 java 安全 编码 规范 安全篇 2.0
- JAVA实训报告万年历
- java 学生管理系统Eclipse编写
- ChineseChessView.java
- java面板多线程发牌程序
- java简单桌面考试系统可实现倒计时、
- java代码实现填充word模板生成word合同
- 操作系统课程设计——“生产者消费
- 使用java实现Xmodem协议
- 公交管理系统java+MySQL源码及设计报告
- java实现坦克大战联机
- 钉钉企业应用Demo(Java)
- JAVA实验报告(四)-李兆明.doc
- JSP技术发展史
- 直方图应用相似图片识别Java
- java开发实战经典——课后答案
- Java游戏设计(包含论文)
- java核心技术第十版源码
- 服务端接入顺丰apijava可直接运行
- javaweb电商项目视频
- Java实现Des加密不用加载包
- java开发汽车租赁系统
- java简单的购物车系统
- 基于javaweb的简单新闻管理系统
评论
共有 条评论