日期:2014-05-16 浏览次数:20888 次
前言:最近有个需求,要求从一台WINDOWS的服务器上迁移4.5G的文件到HP-UNIX机器,无奈mget不支持文件夹。所以自己基于apache的net包写了个递归FTP迁移文件的工具。
?
工具用Myeclipse开发,附件是直接用Myeclipse explort出来的File System格式的,直接解压放入Myeclipse工程就行了,你可以把这个工程导成jar在你需要迁移的目的机器上执行.
?
就一个主要类FtpDirUtil.java,还有一个配置文件FtpServerZhCfg.properties配置了ftp服务器的listFiles格式实现类,里面这个org.coffeesweet.main.ZhUnixFTPEntryParser是我自己扩展原有的unix的实现类,因为原有的对中文支持不好,自己修改了原有的正则表达式。
?
windows服务器如果用IIS发布FTP服务的话用我这个实现类也可以,因为它FTP上去也是采用的UNIX格式的listFiles;
?
另外加入了ftp的log监控,有网络异常没有传递成功的文件最后会在ftpExceptionLog.txt日志文件中列出,ftpLog.txt中
记录的是正常传递的文件。
?
就这么多了,属于临时解决问题,很粗糙。
?
还有apache-net的1.4版本劝大家别用了,有问题,经常出现connect close reset的问题。而且里面集合都是用vector
实现的,新的2.0后的版本都改为了新的jdk的集合类。
?
2011年1月14日修改
1:增加了本地递归上传文件的功能;
2:修订了原有包的中文目录问题;
执行FtpDirUtil.java类,参数格式:
?
// args[0] download or upload
// args[1] server
// args[2] port
// args[3] user
// args[4] pwd
// args[5] remot dir [absolute] remotDir is always(unix and windows) is '/' begin
// args[6] local dir [absolute]
?
程序没有进行严格的参数判断,自己写符合格式的参数。
本次新增附件名为FtpDirUtil_ZH.rar,原有包没有删除。
?
至于apache-common-net包对中文日期支持的问题,除了我上面采用的配置文件的解决方案,还有下面
链接的方案,感觉比较麻烦,就看你的需要了,你到底需不需要文件的时间等相关属性(中文环境的话)
http://blog.csdn.net/shangzhiliang_2008/article/details/5933511
?
?