我正在使用以下代码段来解压缩文件。
public void zipFiles(String zipFile){
byte[] buffer = new byte[1024];
String charset = "UTF-8";
try{
FileOutputStream fos = new FileOutputStream(zipFile);
ZipOutputStream zos = new ZipOutputStream(fos);
zos.setEncoding(charset);
System.out.println("Output to Zip : " + zipFile);
for(String file : this.fileList){
System.out.println("File Added : " + file);
ZipEntry ze= new ZipEntry(file);
zos.putNextEntry(ze);
FileInputStream in =
new FileInputStream(SOURCE_FOLDER + File.separator + file);
int len;
while ((len = in.read(buffer)) > 0) {
zos.write(buffer, 0, len);
}
in.close();
}
zos.closeEntry();
//remember close it
zos.close();
System.out.println("Done");
}catch(IOException ex){
ex.printStackTrace();
}
}
当我的文件/文件夹名称是英文时,这可以正常工作。但对于其他人来说,俄罗斯人物在这期间不受支持。即;解压缩时文件名或文件夹名称有破损。
这适用于mac os但在Windows和Linux中没有预期的那样。非常感谢任何帮助。