java 电子文件名称中有中括号[]时登陆Ftp找不到

代码如下
path = “归档管理/哈尔滨地铁集团有限公司/生产管理类/2009/总工办/30年/哈地铁党发[2012]12号关于刘宝玉等同志任职的通知.pdf”;
InputStream ss=ftpClient.nameList(path);
报错:
java.io.FileNotFoundException: NLST mediasource/归档管理/哈尔滨地铁集团有限公司/生产管理类/2009/总工办/30年/哈地铁党发[2012]12号关于刘宝玉等同志任职的通知.pdf: 550 Can't find file
at sun.net.ftp.FtpClient.readReply(FtpClient.java:236)
at sun.net.ftp.FtpClient.issueCommand(FtpClient.java:193)
at sun.net.ftp.FtpClient.openDataConnection(FtpClient.java:383)
at sun.net.ftp.FtpClient.nameList(FtpClient.java:641)
at uicontrol.media.bs.SunFtpTool.isExist(SunFtpTool.java:372)
at uicontrol.media.action.MediaAction.mediaRight(MediaAction.java:596)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:440)
at com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:279)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:242)
at com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:163)
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)

第1个回答  2014-02-13
ftpClient.setControlEncoding("GBK");或ftpClient.setControlEncoding("UTF-8");试试追问

没有这个方法哦,现在发现只有一个符号的问题右方括号]

追答

JDK什么版本?

追问

1.6 加个企鹅 496889396

追答

那就把[ 和 ]转义为\[ 和 \]

追问

试过了 没用的

追答

InputStream ss=ftpClient.nameList(path);里面的path应该写目录,不应该写文件名吧

第2个回答  2014-02-13
去掉中括号就可以找到?追问

是的,知道解决办法吗?