資源簡介
遠程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個文件信息
評論
共有 條評論