背景:访问ftp,抽取数据。在访问中文文件夹的时候,FTPClient.changeWorkingDirectory()返回false。
查询资料连接:FTPClient.changeWorkingDirectory()无法进入中文目录_changeworkingdirectory 中文_hehuang139的博客-CSDN博客
注:链接中的方法为,改变路径编码:
changeWorkingDirectory(new String(pathname.getBytes(),FTP.DEFAULT_CONTROL_ENCODING));
如果按照以上连接内容,没有成功的话,可以尝试以下方法。
个人案例:
我用的commons-net版本为3.6,失败了。但是我换成2.0版本后,再配合改变路径编码的方法,居然成功了~!
FTPClient.changeWorkingDirectory(new String(path.getBytes("GBK"), FTP.DEFAULT_CONTROL_ENCODING));
<!--ftp工具类-->
<dependency>
<groupId>commons-net</groupId>
<artifactId>commons-net</artifactId>
<version>2.0</version>
</dependency>
所以,可以尝试用一下2.0版本。
具体原因还在查资料中。希望有了解这部分内容的大神,能够解惑。万分感谢!!!!
给大家提供一个案例,希望可以帮到大家。
在使用FTPClient访问包含中文名称的文件夹时,changeWorkingDirectory()可能失败。一种解决方法是更改路径编码,如将路径转为GBK编码后再使用FTP.DEFAULT_CONTROL_ENCODING。文中提到,将commons-net库从3.6版本降级到2.0版本,结合编码转换,可以成功解决此问题。作者提供了自己的案例并邀请了解相关问题的大神分享更多知识。

9138

被折叠的 条评论
为什么被折叠?



