论坛首页 Java企业应用论坛

ftp迁移工具[apache net包]

浏览 3100 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2011-01-05   最后修改:2011-01-14

前言:最近有个需求,要求从一台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,原有包没有删除。

   发表时间:2011-01-06  
如果文件数量多的话,建议先压成存档文件,然后再ftp或者其他方式移过去,然后释放就行了,注意压缩的时候选"存档",速度很快

先存档的理由是,如果文件数量很多,那么ftp会很慢,大部分时间会花在建立ftp连接,发送各种命令,关闭连接上

想起好久之前实习做过类似的事情..用ftpclient上传数以万记的文件,慢得不得了~~
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics