`

ftp迁移工具[apache net包]

    博客分类:
  • JAVA
阅读更多

前言:最近有个需求,要求从一台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

 

 

分享到:
评论
1 楼 weiqiang.yang 2011-01-06  
如果文件数量多的话,建议先压成存档文件,然后再ftp或者其他方式移过去,然后释放就行了,注意压缩的时候选"存档",速度很快

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

想起好久之前实习做过类似的事情..用ftpclient上传数以万记的文件,慢得不得了~~

相关推荐

    ApacheFTP开源工具

    在实际项目中,Apache FTP工具可以集成到各种Java应用程序中,如Web应用、桌面应用或者后台服务,帮助处理文件的备份、迁移、同步等任务。由于其开源性质,开发者可以查看和修改源代码,根据需求进行定制,也可以...

    ApacheCamel-FTP

    总的来说,Apache Camel FTP 组件是构建基于文件传输的集成解决方案的强大工具,通过其丰富的功能和易于使用的 API,能够简化开发工作,提升系统的可维护性和扩展性。结合提供的示例,你可以深入学习并掌握如何在...

    基于HDFS+FTP的文件存储与迁移实验代码.zip

    在本实验中,我们将探讨如何利用Hadoop的分布式文件系统(HDFS)和FTP协议进行文件的存储与迁移。这个"基于HDFS+FTP的文件存储与迁移实验代码.zip"包含了一个名为"HDFS_FTP_ForMyProject-master"的项目源码,这为...

    appache ftp 资源下载

    总之,Apache FTP库是Java开发者处理FTP任务的强大工具,它提供了丰富的功能和良好的API设计,使得与FTP服务器的交互变得简单而高效。无论是在构建FTP客户端应用,还是在系统集成中需要进行文件传输,都可以考虑使用...

    利用apache的ftpclent实现FTP服务器之间互传

    Apache Commons Net是Apache软件基金会的一个项目,提供了一系列用于网络协议如FTP、SMTP等的Java类库。FTPClient是该库中的核心组件,用于处理FTP协议的交互。 2. **FTP协议**: 文件传输协议(FTP)是一种用于...

    ftp.rar_ftp_java ftp

    Apache Commons Net库可以通过Maven或Gradle等构建工具添加到项目依赖中。然后,可以创建`FTPClient`实例,并设置服务器的主机名、端口号、用户名和密码。连接到FTP服务器后,你可以进行登录操作。 发送消息是FTP的...

    Java实现的FTP连接与数据浏览程序.rar

    FTP是一种用于在网络上进行文件传输的标准协议,广泛应用于网站更新、文件共享和数据迁移等场景。在Java中实现FTP功能,通常会使用Java的内置库`java.net`和`java.io`,以及可能的第三方库如Apache Commons Net。 *...

    linux-Apache

    1. 安装Apache:在大多数Linux发行版中,Apache可以通过包管理器(如apt-get for Debian/Ubuntu或yum for CentOS/RHEL)进行安装。例如,在Ubuntu上,可以使用以下命令: ``` sudo apt-get update sudo apt-get ...

    java中FTP上传

    Apache Commons Net是Apache软件基金会的一个项目,提供了丰富的网络协议处理工具,包括FTP相关的API。你可以通过Maven或Gradle将其添加到项目依赖中: ```xml <!-- Maven --> <groupId>commons-net</groupId> ...

    camel-FTP-maven

    通过以上知识,你可以了解到如何利用Apache Camel和Maven来实现FTP的集成,这在很多需要文件传输的场景中非常实用,例如日志收集、数据迁移或自动化备份。熟悉这些概念和技术将有助于提升你的Java集成和文件处理能力...

    从ftp中下载文件上传到Hadoop分布式文件系统

    在脚本自动化环境中,可以使用各种编程语言(如Python、Java或Shell脚本)中的库或模块来实现FTP操作,例如Python的`ftplib`库或Java的`java.net.Socket`和`java.io`包。 其次,Hadoop分布式文件系统(HDFS)是...

    springmvc上传文件到FTP

    在上述代码中,我们使用了Apache Commons Net库来处理FTP连接和文件传输。`connectToFtpServer()`方法建立连接,`uploadFile()`方法将文件内容上传,`disconnectFromFtpServer()`方法关闭连接。 为了使文件上传功能...

    FTP文件上传下载CSV文件生成ZIP压缩

    在Java中,我们可以使用`java.net.Socket`和`java.io`包中的类来实现FTP功能,但更常见的是使用Apache Commons Net库,该库提供了更方便的FTPClient类,可以简化文件传输操作。 FTPUtils.java文件很可能是用来封装...

    apache-camel-2.9.4.tar.gz

    总之,Apache Camel 2.9.4为开发者提供了一套强大且灵活的工具,用于构建可扩展和可维护的消息传递系统。通过理解和使用这个框架,你可以轻松地集成各种服务和系统,实现高效的企业级应用集成。

    apache-tomcat-7.0.57.tar.gz

    在本文中,我们将深入探讨与"apache-tomcat-7.0.57.tar.gz"相关的知识点,包括Tomcat的版本、在Linux环境下的使用、以及在Windows与Linux之间的迁移。 首先,`apache-tomcat-7.0.57.tar.gz` 是Apache Tomcat 7.0.57...

    apache+tomcat集群文档

    - **N54537 Real-server**:在Apache + Tomcat集群中,N54537 Real-server是指提供具体服务的服务器集合,它们可以提供FTP、HTTP、DNS等多种服务。 - Director(导向器)负责将请求分发到不同的Real-server上处理,...

    kettle7常用jar包

    Kettle,也被称为Pentaho Data Integration(PDI),是一种强大的ETL(Extract, Transform, Load)工具,用于数据整合和数据迁移。这个16MB的“kettle7常用jar包”是针对Kettle 7的一个精简版集合,包含了执行基本...

    apache-jmeter-3.1.zip

    Apache JMeter是一款强大的性能测试工具,主要用于Web应用的负载和压力测试。它的设计目标是模拟大量并发用户,以此来测试服务器、网络或者对象的性能,确保它们在高负载下仍能稳定工作。JMeter 3.1是这个开源项目的...

Global site tag (gtag.js) - Google Analytics