public static void compressFiles2ZipBase(File file, ZipArchiveOutputStream zaos, String base) throws IOException {
		if (file != null) {
			if(base.equals("")){
				base = file.getName();
			}else{
				base = base + File.separator + file.getName();
			}
			if(file.isDirectory()){
					
				for(File f:file.listFiles()){
					compressFiles2ZipBase(f, zaos, base);
				}
			}else{
				ZipArchiveEntry zipArchiveEntry = new ZipArchiveEntry(file, base);
				zaos.putArchiveEntry(zipArchiveEntry);
				InputStream is = null;
				try {
					is = new FileInputStream(file);
					byte[] buffer = new byte[1024 * 5];
					int len = -1;
					while ((len = is.read(buffer)) != -1) {
						// 把缓冲区的字节写入到ZipArchiveEntry
						zaos.write(buffer, 0, len);
					}
					// Writes all necessary data for this entry.
					zaos.closeArchiveEntry();
				}finally {
					if (is != null){
						is.close();
						is = null;
					}
				}
			}
		}
	}