关于FTPClient文件夹重命名的问题

我用FTPClient做文件重命名成功了,但是我现在想问文件夹重命名,但是却不行了,用rename不管用,效果是整个文件夹消失了,而不是被重命名,我想请问FTPClien... 我用FTPClient做文件重命名成功了,但是我现在想问文件夹重命名,但是却不行了,用rename不管用,效果是整个文件夹消失了,而不是被重命名,我想请问FTPClient具备重命名文件夹的功能么?如果具备应该怎么做? 展开
 我来答
小歆嵩
推荐于2016-02-23 · 知道合伙人数码行家
小歆嵩
知道合伙人数码行家
采纳数:403 获赞数:41310
河南科技大学在校本科生

向TA提问 私信TA
展开全部
环境描述:
1.服务端:采用serv-u11.3版本的服务器管理工具作为ftp服务端
2.客户端:采用FTPClient 1.4.1组件作为客户端访问ftp服务器

我们在用FTPClient组件上传文件时,当上传的文件名为中文时,有以下几种情况:
一、当没有禁用serv-u服务端工具的上传下载编码时,即:
没有将域限制和设置里默认的opts-utf8禁止,在:域限制和设置---FTP设置选项卡---全局属性---高级选项---第三个多选框。
1.客户端代码中如果编码为:UTF-8,那么完全没有问题,中文命名的文件可以正常上传;参考以下代码:
/**
* FTP上传单个文件测试
*/
public static void testUpload() {
FTPClient ftpClient = new FTPClient();
FileInputStream fis = null;

try {
ftpClient.connect("此处填写服务器IP");
ftpClient.login("用户名", "密码");

File srcFile = new File("F:\\路由器配置.txt");
fis = new FileInputStream(srcFile);
//设置上传目录
ftpClient.changeWorkingDirectory("/admin/pic");
ftpClient.setBufferSize(1024);
ftpClient.setControlEncoding("UTF-8");//这里设置编码
//设置文件类型(二进制)
ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE);
boolean temp = ftpClient.storeFile(new String("路由器配置.txt".getBytes("UTF-8"),"iso-8859-1"), fis);//编码转换
System.out.println("temp-------"+temp);
} catch (IOException e) {
e.printStackTrace();
throw new RuntimeException("FTP客户端出错!", e);
} finally {
IOUtils.closeQuietly(fis);
try {
ftpClient.disconnect();
} catch (IOException e) {
e.printStackTrace();
throw new RuntimeException("关闭FTP连接发生异常!", e);
}
}
}

2.客户端代码中如果编码为:GB2312,可以上传,但是上传的文件名为乱码,代码同上,改变红颜色的字的编码为GB2312即可;

二、一、当不选serv-u服务端工具的上传下载的默认编码时,即:
在:域限制和设置---FTP设置选项卡---全局属性---高级选项---第三个多选框不要勾选时;
1.客户端代码中如果编码为:UTF-8,文件不能上传,代码中,temp变量为false;
2.客户端代码中如果编码为:GB2312,文件正常上传,并且不为乱码,代码中,temp变量为true;

综合上述:将ftp服务器默认编码禁用,并且客户端代码中以GB2312 编码上传并转化较为合理,解决中文文件名的问题;另外,还有多种情况没有举例,大家可以测试一下,以便了解更为透彻。
Treelab
2021-01-26 · 贡献了超过299个回答
知道答主
回答量:299
采纳率:100%
帮助的人:13.7万
展开全部

本节视频我们来聊一聊如何新建与重命名文件夹。Treelab 官网:www.treelab.com.cn

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-08-12
展开全部
这个功能,要服务器支持的了
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式