怎样在java 代码中通过ftp协议实现远程压缩文件 哪位指点一二,小弟不胜感激呀

具体情况是这样的: 服务器端有好多xml文件有几个G,在客户端要下载下来,由于文件太大,若加上网络不好,就会下载失败. 考虑到xml文件压缩后会少的很多,就想在下载前将其压缩, 问题就在 怎样在客户端通过ftp协议将服务器端的xml文件压缩呢? 现在用的是commons-net 链接的 各位朋友都说说有啥好的解决方案莫

这个从理论上讲不是一定不可以实现,而是较难实现,难在于现成的ftp服务器不提供这种功能,可以实现是因为有哪些开源的ftp服务 比如filezilla. 你可以通过修改源码支持在传输文件之前,加个压缩功能,这个在我们的项目中就有过调研,调研的结果是已经进行了一定的源码改动做到了,不过我们是在上传完成时做一些操作,你的是在下载时做一些操作,c++的东西主要是通过一些消息,你请求下载的时候肯定也是由消息的,你可以截获,然后写个压缩程序调用一下。

[quote]
1.#!/bin/sh //这是shell程序的开头部分,必须地。
2.tar -cvf filter.tar filter/ //解压 filter.tar 到 filter/文件夹下

3.ftp -n<<! // 启动ftp命令,并且使用非交互式(-n参数)就是不采用问答式的命令
4.open 10.70.193.33 // 打开10.70.193.33 这个ftp服务地址,就是连接服务。
5.user username password // 使用用户名和密码
6.binary // 传输文件是用二进制的方式。
7.prompt off // 禁用提示 (相当于bat中的@echo off)
8.cd /app/ngapp/data/bak // 进入 /app/ngapp/data/bak 目录
9.mput filter.tar // 将filter.tar 文件上传
10.close // 关闭连接
11.bye // 退出ftp命令行
[/quote]

除非你在服务器上已经压缩好了再通过FTP获取,FPT没有压缩获取的命令。