• 大小: 75KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-22
  • 语言: Java
  • 标签: ftp  java  ftp4j  FTPClient  

资源简介

远程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\.mymetadata

     文件       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\meta-INF\MANIFEST.MF

     文件        705  2011-12-01 16:28  FtpTest\WebRoot\WEB-INF\classes\com\cee\ftp\Fileobject.class

     文件       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.xml

     文件        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个文件信息

评论

共有 条评论