随笔-62  评论-29  文章-0  trackbacks-0
粗略看了一边,决定选择The Jakarta Project, Jakarta Commons/Net。Common Net是Jakarta Commons下的一个子项目,支持包括FTP在内的多种Internet协议, 其他有比如Finger, Whois,Telnet,POP3等等。

Common Net支持FTP的关键类是org.apache.commons.net.ftp.FTPClient. 下面介绍一些具体的使用方法。

1. 使用FTPClient连接和登录FTP服务器

FTPClient ftp = new FTPClient();    
ftp.connect(server);    
ftp.login(username, password);    
System.out.println("Connected to " + server + ".");    
System.out.print(ftp.getReplyString());  

类似使用ftp命令登录FTP服务器以后,可以执行各种命令比如cd和ls,可以调用FTPClient的函数比如FTPClient.changeWorkingDirectory(folder); 改变当前目录, FTPClient.listFiles()枚举当前目录下的所有文件。

2. 使用FTPClient下载文件
FTPFile[] files = ftp.listFiles();    
System.out.println("Number of files in dir: " + files.length);    
for (int i = 0; i < files.length; i++) {    
    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());    
}  

FTPClient.retrieveFile从FTP服务器上取回一个文件。其实我更关心的是上传的功能。

3. 使用FTPClient上传文件
FileInputStream fis = new FileInputStream(localFileName);    
ftp.storeFile(remoteFileName, fis);  

和retrieveFile相对应的storeFile上传一个本地文件。完事后别忘了关闭FTPClient。

4. 关闭FTPClient
ftp.logout();    
ftp.disconnect();  


简洁起见,以上的代码忽略了错误处理。FTPClient还支持其他一些函数,比如makeDirectory(String pathname) 在服务器上新建一个目录。rename(String from, String to) 改变一个文件的名字。 具体的请参照Commons Net的API文档。

posted on 2008-12-12 23:08 阅读(383) 评论(0)  编辑  收藏

只有注册用户登录后才能发表评论。


网站导航: