bianbian coding life

便便代码人生: 关注技术, 翻译文档, 偶尔动动手

[原] ftp4j的解析list的bug及解决

Posted by bianbian on 2008-06-19 08:08


本文Tags: , , ,

上次推荐的ftp4j在解析部分FTP站点的目录list的时候遇到了FTPListParseException(也怪FTP协议没有对LIST格式作出标准)。查看源码发现,主要是两个问题:
1)文件权限不只rwx这三个,附加了s、t(详见http://en.wikipedia.org/wiki/File_system_permissions
2)部分ftpd似乎直接调用的“ls -l”输出目录,第一行是“total xxx”
给作者写信了,说不定下个版本就有Sepcial Thanks to bianbian 了。嘿嘿嘿嘿。。。
修正后的代码(省略后面没有变化的部分):
Read the rest of this entry »

标签: , , ,

遵守创作共用协议,转载请链接形式注明来自http://bianbian.org 做人要厚道

相关日志

Posted in Java, Technology | 4 Comments »

[原] 强烈推荐一个纯java的FTP Client库:ftp4j

Posted by bianbian on 2008-04-15 11:08


本文Tags: , ,

ftp4j是个很年轻的开源项目,但是试用后发现很好很强大,如果你找一个纯java的FTP库,要支持socks4,socks4a,socks5,http代理,就是他了!
比apache的FTPClient(不支持代理)、半商业的edtFTPj(PRO支持代理,但是要$,而且是系统变量级的代理,不能单个指定)等好用多了,而且是LGPL协议,源码质量很高。(不过如果你需要FTPS及SFTP,那ftp4j不支持)
jar包只有50多k,地址在这里:ftp4j
使用代理的代码:

  1. import java.util.ArrayList;
  2. import it.sauronsoftware.ftp4j.FTPClient;
  3. import it.sauronsoftware.ftp4j.FTPFile;
  4. import it.sauronsoftware.ftp4j.connectors.SOCKS4Connector;
  5. ......
  6. //ftp4j使用socks4代理连接FTP示例,by http://bianbian.org
  7. FTPClient ftp = new FTPClient();
  8. SOCKS4Connector socks4 = new SOCKS4Connector("127.0.0.1", 1080);
  9. ftp.setConnector(socks4);
  10. ftp.connect("an.ip.or.host", 21);
  11. ftp.login("anonymous", "bianbian@bianbian.org");
  12. ftp.setCharset("gbk");
  13. //list files
  14. FTPFile[] list = ftp.list();
  15. for(FTPFile file : list) {
  16.     System.out.println(file);
  17. }
  18. ftp.disconnect(true);
标签: , ,

遵守创作共用协议,转载请链接形式注明来自http://bianbian.org 做人要厚道

相关日志

Posted in Java, Technology | 2 Comments »