private static void zipDir(String prefix, File srcDir, ZipOutputStream zip) throws IOException {
File[] files = srcDir.listFiles();
for (int i = 0; i < files.length; i++) {
if(files[i].isDirectory())
zipDir(prefix + "/" + files[i].getName(),files[i],zip);
else {
FileInputStream fis = new FileInputStream(files[i]);
ZipEntry entry = new ZipEntry(prefix + "/" + files[i].getName());
zip.putNextEntry(entry);
byte[] buf = new byte[1024];
for(int readed = fis.read(buf); readed >= 0; readed = fis.read(buf))
zip.write(buf,0,readed);
zip.closeEntry();
}
}
}ZipOutputStream zip = new ZipOutputStream(new FileOutputStream("E:/Write/a.zip"));
zipDir("",new File("E:/MyDir/"),zip);
zip.close();但是在Java里面,如果文件或者目录名是中文的,在Zip包里面会变成UTF-8编码的,注意。
File[] files = srcDir.listFiles();
for (int i = 0; i < files.length; i++) {
if(files[i].isDirectory())
zipDir(prefix + "/" + files[i].getName(),files[i],zip);
else {
FileInputStream fis = new FileInputStream(files[i]);
ZipEntry entry = new ZipEntry(prefix + "/" + files[i].getName());
zip.putNextEntry(entry);
byte[] buf = new byte[1024];
for(int readed = fis.read(buf); readed >= 0; readed = fis.read(buf))
zip.write(buf,0,readed);
zip.closeEntry();
}
}
}ZipOutputStream zip = new ZipOutputStream(new FileOutputStream("E:/Write/a.zip"));
zipDir("",new File("E:/MyDir/"),zip);
zip.close();但是在Java里面,如果文件或者目录名是中文的,在Zip包里面会变成UTF-8编码的,注意。
还有一个问题,信誉分怎样才可以加上去,谢谢
private static void unZipDir(
String prefix,
ZipFile zipFile,
ZipInputStream zip)
throws IOException {
//ZipFile zipFile = new ZipFile(srcDir);
for (Enumeration e = zipFile.entries(); e.hasMoreElements();) {
ZipEntry zipEntry = (ZipEntry) e.nextElement();
if (zipEntry.isDirectory())
unZipDir(prefix+"/"+zipEntry.getName(),srcDir,zip);
else
}
具体思路不是很清楚,望指点,谢谢。马上揭贴,再次谢谢。