2、org.apache.commons.net.ftp.*;
这个包在Jakarta Commons Net library里,现在的最高版本是1.4.1,可以从以下地址下载
http://mirror.vmmatrix.net/apache/jakarta/commons/net/binaries/commons-net-1.4.1.zip
里面包含了打包好的jar,API,及全部的class文件
http://mirror.vmmatrix.net/apache/jakarta/commons/net/source/commons-net-1.4.1-src.zip
这里包含一些例子以及全部的代码
给出一个该包的例子:
...
import org.apache.commons.net.ftp.*;
...
public static void getDataFiles( String server,
String username,
String password,
String folder,
String destinationFolder,
Calendar start,
Calendar end )
{
try
{
// Connect and logon to FTP Server
FTPClient ftp = new FTPClient();
ftp.connect( server );
ftp.login( username, password );
System.out.println("Connected to " +
server + ".");
System.out.print(ftp.getReplyString());
// List the files in the directory
ftp.changeWorkingDirectory( folder );
FTPFile[] files = ftp.listFiles();
System.out.println( "Number of files in dir: " + files.length );
DateFormat df = DateFormat.getDateInstance( DateFormat.SHORT );
for( int i=0; i
{
Date fileDate = files[ i ].getTimestamp().getTime();
if( fileDate.compareTo( start.getTime() ) >= 0 &&
fileDate.compareTo( end.getTime() ) <= 0 )
{
// Download a file from the FTP Server
System.out.print( df.format( files[ i ].getTimestamp().getTime() ) );
System.out.println( "\t" + files[ i ].getName() );
File file = new File( destinationFolder +
File.separator + files[ i ].getName() );
FileOutputStream fos = new FileOutputStream( file );
ftp.retrieveFile( files[ i ].getName(), fos );
fos.close();
file.setLastModified( fileDate.getTime() );
}
}
// Logout from the FTP Server and disconnect
ftp.logout();
ftp.disconnect();
}
catch( Exception e )
{
e.printStackTrace();
}
}
同sun.net.ftp相同,都是先建立FtpClient(注意两包的大小写不同)的实例,然后通过connect()方法连接,login()方法登陆,但是org.apache.commons.net.ftp.*明显比sun.net.ftp功能强大很多。
org.apache.commons.net.ftp.*包将FTP中的file单独出来成为了一个新类FTPFile,还有类FTPFileEntryParser、parse,没有仔细研究,但是从字面来看应该是转化为某种形势的类,有待研究同时这个commons-net-1.4.1.jar包中也提供了FTP服务器,telnet,mail等一系列类库。
org.apache.commons.net.ftp.*包的缺点在于需要设置classpath,并且需要下载jakarta-oro-2.0.8.jar这个包才能运行(如果没有这个包,会在ftp.listFiles()方法后抛出找不到class异常),此包无须在代码中import,只需设置在classpath中即可。下载地址:http://mirror.vmmatrix.net/apache/jakarta/oro/source/jakarta-oro-2.0.8.zip
如果想要强大的FTP服务,那么org.apache.commons.net.ftp.*包应该是你的最好选择,而且也是开源,免费的。
这个包的问题是:使用Jakarta Commons Net library需要在环境变量里面编辑classpath.这是不方便的地方。另外IBM也有提供一个ftp包。大家有兴趣可以搜索一下。
33/3<123