- 偶得一段代码是压缩文件成zip格式的,但是遇到的问题是,含有中文的文件夹,压缩后无法打开,提示“没有文件被解压”;
- 查询资料得出结论,jdk原生的ZipOutputStream对中文支持不太好,建议使用ant的ZipOutputStream;
- 下载ant.jar,里边就有这个类,不用改动代码,将jar包引入工程后,由于类名一样,把java文件中原来引入的包名改一下就行了;
- 改造后的代码:
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
//import java.util.zip.ZipEntry;
//import java.util.zip.ZipOutputStream;
import org.apache.tools.zip.ZipEntry;
import org.apache.tools.zip.ZipOutputStream;
public class FileZip {
/**
* @param inputFileName
* 你要压缩的文件夹(整个完整路径)
* @param zipFileName
* 压缩后的文件(整个完整路径)
*/
public static void zip(String inputFileName, String zipFileName)
throws Exception {
zip(zipFileName, new File(inputFileName));
}
private static void zip(String zipFileName, File inputFile)
throws Exception {