apache 里commons包里的 ftp使用
来源:互联网 发布:ajax中解析json 编辑:程序博客网 时间:2024/03/29 20:44
由于最近重构别人的代码,发现了在使用ftp存在的问题,特记录如下:
FTP类来源:org.apache.commons.net.ftp.FTP
一般的同学都会写链接上ftp,由于是远程调用,程序要注意消息机制的处理。(链接失败怎么办)
重要问题在上传下载。
上传文件,基本上没问题
如果是文件夹呢?文件夹下又有文件夹。。。。
很多人会想到递归。对,就是递归。
但是,涉及到目录问题。往往会造成 文件和目录不对应的情况。
经过多番查找文档资料和自己亲自测试,终于弄明白了 changeWorkingDirectory(str);这个方法参数的含义。
eg: 目录A/B/C/D
首先,默认的的目录在ftp根目录下假设为 /home/ftp
如果,我要进到D目录,如何设置?
changeWorkingDirectory(A/B/C/D) ;即可
在此基础上,要回到B目录,该如何?
是否changeWorkingDirectory(A/B);?肯定错误!
应该 使用 changeToParentDirtory(),2次调用退到B目录下。
假如我在A目录下,进入C目录,是否能这么写
changeWorkingDirectory(A/B/C)?错误。
在A目录下,就不要再在路径中包含A了。应该直接changeWorkingDirectory(B/C);
总结如下:1、前进就用changeWorkingDirectory(str),这个str只能是该目录的下级目录,注意,下级目录中若有不存在,也会返回false
2、后退就要用changeToParentDirectory()。顾名思义,从当前目录退到上级目录。
该总结是经过了鄙人多天的查资料,多次反复测试得出来的。API文档是没有写这么详细的。
当然还有个解决方案也可以说下:
在客户端将要上传的文件夹压缩,然后通过ftp传至服务器端。服务器端写一个监听线程,只要有相应的压缩包过来,就立刻解压。
压缩名最好开始不要定成zip格式,例如: example.tmp 。等要解压的时候,改名,并解压。
- apache 里commons包里的 ftp使用
- 使用Apache 的commons-net 包实现FTP上传下载小结
- 使用apache commons-net包实现文件ftp上传
- 使用Apache commons-net包的ftp时中文文件名乱码的问题
- 使用org.apache.commons.net.ftp包开发FTP客户端,实现进度汇报,实现断点续
- 使用apache的commons-net-3.1.jar实现FTP上传
- 利用org.apache.commons.net.ftp包实现一个简单的ftp客户端实用类
- 使用Commons-net包实现ftp服务器的访问
- org.apache.commons.net.ftp使用心得
- org.apache.commons.net.ftp.FTPClient使用
- apache.commons.NET.FTP使用小结
- Apache组件commons的Codec包的使用实例
- 使用apache-commons-net包遇到的bug
- 使用apache的commons.io包读取文件
- 使用org.apache.commons.net.ftp包开发FTP客户端,实现进度汇报,实现断点续传,中文支持
- 使用org.apache.commons.net.ftp包开发FTP客户端,实现进度汇报,实现断点续传,中文支持
- 使用org.apache.commons.net.ftp包开发FTP客户端,实现进度汇报,实现断点续传,中文支持
- 使用org.apache.commons.net.ftp包开发FTP客户端,实现进度汇报,实现断点续传,中文支持
- 修改Wince6.0 Registry Storage
- Controller与View相互间传递数据
- apk反编译
- prettyPhoto api 使用方法
- How run Powershell ISE on WIndows Server2008
- apache 里commons包里的 ftp使用
- 创建图表、警报、日志和报表
- v4l2_field理解
- vb-复制ie临时文件夹下所有mp3文件到指定目录,并且将utf8编码转换过来
- jive 配置
- 理解extern char s[100]与extern char *s
- 回文字(堆栈和队列实现)
- 中缀表达式与前缀,后缀的转换
- VC中结构体内存分配问题透析(sizeof)