请问一个java文件操作中的中文文件名问题。

问题描述

您们好,我想请问一个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/

时间: 2024-07-31 04:14:06

请问一个java文件操作中的中文文件名问题。的相关文章

Myeclipse中没有main方法怎么运行一个.java文件?

问题描述 Myeclipse中没有main方法怎么运行一个.java文件? **平时测试一些代码,都是建立一个普通的.java文件,然后在main方法里面写测试代码的,今天看网上的教学视频,人家没有main方法,只有一个public void testAdd() 方法,居然也是一样点击上面绿色三角的Run按钮,就可以运行这个testAdd()方法里的测试代码了,我也一样操作就报错了,如下两图分别是代码和报错信息,请问是不是要做一些设置才可以这样执行呢?没有main方法的 .java类怎么可以执行

multipart ile-MultipartFile上传文件时,中文文件名乱码怎么解决?

问题描述 MultipartFile上传文件时,中文文件名乱码怎么解决? package com.upload; import java.io.File; import java.io.IOException; import java.text.SimpleDateFormat; import java.util.Date; import javax.servlet.http.HttpServletRequest; import org.springframework.stereotype.Co

一个java文件怎么调用另一个文件的text值

问题描述 一个java文件怎么调用另一个文件的text值 例如我在JAVA文件A里面建了一个方法 public String getUser() { String s1; s1=(String)(user.getText()); return s1; } 然后我想在JAVA文件B里调用user.getText()的值,我是这样写的 public InputCardnum inputcardnum;//这是文件A的名字 创建对象 String a=inputcardnum.getUser(); 可

如何寻找一个java文件的所有import的java,把这些所有java都打到一个jar包,自动化?

问题描述 如何寻找一个java文件的所有import的java,把这些所有java都打到一个jar包,自动化? 比如有一个java文件,import了一些java文件,有没有自动化的方法把所有相关的java都打到一个jar包 解决方案 其实你完全可以用maven项目 这样的话可以将你所需的外部导入导入到你的库中

java语法-一个╳╳╳.java文件可以包含几个类

问题描述 一个╳╳╳.java文件可以包含几个类 一个╳╳╳.java文件可以包含几个类,内嵌类不算, 什么情况下要一起写,什么情况下需要分开不同的java文件编写 解决方案 一个java文件只能包含一个共有外部类(和文件同名且没包含在另一个内里面的类),其它的类的个数没有限制 解决方案二: JAVA 读取文件的几个类 解决方案三: 新建类的时候,只能新建public修饰的类,或者无修饰符的类:一个public修饰的类可以包含几个无修饰符的类:至于private,protect可以查看一下它们权

eclipse如何把一个java文件部署成服务器并导入本地tomcat,本地tomcat已经运行当中

问题描述 eclipse如何把一个java文件部署成服务器并导入本地tomcat,本地tomcat已经运行当中 eclipse如何把一个java文件部署成服务器并导入本地tomcat,本地tomcat已经运行当中 简单的步骤是如何的,有图就更好啦,谢谢大神解答 解决方案 将java工程导出成一个war包然后放在%tomcat_home%/webapps 下面就可以了 解决方案二: 你是想将javaweb项目部署到tomcat服务器吧. 将javaweb项目部署到tomcat教程 解决方案三: 文

DOS下编译一个.java文件后再用java不能编译文件名.class文件?

问题描述 比如hello.java文件编译后生成hello.class文件后,用java命令只能输入javahello,为什么不能输入javahello.class(会出现couldnotfindorloadmainclasshello.class)? 解决方案 解决方案二:javacxxx.java是编译,javaxxx是执行,不是编译.JAVA跨平台的特性,一次编译,多次执行.解决方案三:还有,这是一个标准,在操作系统上就只认识这个东西,如果你写一个操作系统,要加上.class才能执行,那就

mac-同一个java文件在eclipse和myeclipse下编译后的结果不一样

问题描述 同一个java文件在eclipse和myeclipse下编译后的结果不一样 同一个java文件,在mac eclipse下编译后,在mac本机tomcat上运行没有问题,扔到linux服务器上就无法正常运行.但是在,win7 myeclipse下编译后扔到linux服务器上又没有问题. 解决方案 具体有没有什么错误. 解决方案二: 楼主,"无法正常运行"的想象空间好大啊. 解决方案三: 是jdk的版本的问题吗

关于上传文件时保存中文文件名

上传|文件名|中文 下面是部分代码,简单的说,就是自己判断是否是汉字,然后按双字节的字符去处理它if AscB(MidB(strFrom, i, 1)) > 127 then        strTo = strTo & chr(Ascb(MidB(strFrom, i, 1))*256+Ascb(MidB(strFrom, i+1, 1)))        i = i + 1     else        strTo = strTo & ChrW(AscB(MidB(strFro