问题描述
您们好,我想请问一个java文件操作中的中文文件名的问题。我用File方法获得一个目录下全部文件的列表,并且想给列表中的文件进行解压缩处理。可是当处理一些文件名中包含中文全角或半角字符的压缩文件时,就会提示找不到文件。我就是用普通的FileenumFileOper=newFile(SourceAbsPath);File[]sub=enumFileOper.listFiles();来处理文件的,可是如果文件中包含中文全角或半角字符,在接下来的处理中就找不到文件呢。我是在JavaClass中处理的,用main方法运行时会出现这个问题。我能请问您们了解如何处理这类中文文件名问题吗?求您们指导一下可以吗?谢谢您们了。致礼MikoBear
解决方案
解决方案二:
把取得的路径用string的构造方法转一下码如UTF8在用文件类处理试试
解决方案三:
您好,我尝试过用转码方式处理,比如newString(subFile.toString.get("UTF8"),"GBK)等转码方法,可是很古怪,还是不行。好像File在创建文件目录时,就已经把文件名改变了。例如“ABC(China)中国区辅导资料说明书.zip”中好像存在中文半角和全角字符,所以当File创建目录并获得列表时,取得的文件名就不正确呢。而且我也尝试过用FilegetFolder=newFile(FolderPath,"GBK")方法,希望在获得目录文件列表时能保持中文半角和全角字符,但好像还是不行呢。您们能帮助解答一下吗?谢谢您们了。
解决方案四:
问题应该是压缩的时候,出来的文件名乱码吧。list的时候应该没问题吧。不要用jdk自带的那个zip,改用apachecommons-compress工具,http://commons.apache.org/compress/