资源简介
远程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个文件信息
相关资源
- java串口通信全套完整代码-导入eclip
- jsonarray所必需的6个jar包.rar
- 三角网构TIN生成算法,Java语言实现
- java代码编写将excel数据导入到mysql数据
- Java写的cmm词法分析器源代码及javacc学
- JAVA JSP公司财务管理系统 源代码 论文
- JSP+MYSQL旅行社管理信息系统
- 推荐算法的JAVA实现
- 基于Java的酒店管理系统源码(毕业设
- java-图片识别 图片比较
- android毕业设计
- java23种设计模式+23个实例demo
- java Socket发送/接受报文
- JAVA828436
- java界面美化 提供多套皮肤直接使用
- 在线聊天系统(java代码)
- 基于Java的图书管理系统807185
- java中实现将页面数据导入Excel中
- java 企业销售管理系统
- java做的聊天系统(包括正规课程设计
- Java编写的qq聊天室
- 商店商品管理系统 JAVA写的 有界面
- JAVA开发聊天室程序
- 在linux系统下用java执行系统命令实例
- java期末考试试题两套(答案) 选择(
- JAVA3D编程示例(建模、交互)
- Java 文件加密传输
- java做的房产管理系统
- 基于jsp的bbs论坛 非常详细
- [免费]java实现有障碍物的贪吃蛇游戏
评论
共有 条评论