如何把一个文件压缩成几个把压缩包分成几个

java实现zip压缩文件(同一文件夹下的多个文件夹打成一个zip包)
- zeromike - ITeye技术网站
博客分类:
参考:/shanqing_shuixiu@yeah/blog/static//
Talk is cheap,show me the code!
同一文件夹下的多个文件夹打成一个zip包
import java.io.BufferedInputS
import java.io.F
import java.io.FileInputS
import java.io.FileOutputS
import java.util.zip.CRC32;
import java.util.zip.CheckedOutputS
import java.util.zip.ZipE
import java.util.zip.ZipOutputS
public class ZipCompressor {
static final int BUFFER = 8192;
private File zipF
public ZipCompressor(String pathName) {
zipFile = new File(pathName);
public void compress(String... pathName) {
ZipOutputStream out =
FileOutputStream fileOutputStream = new FileOutputStream(zipFile);
CheckedOutputStream cos = new CheckedOutputStream(fileOutputStream,
new CRC32());
out = new ZipOutputStream(cos);
String basedir = "";
for (int i=0;i&pathName.i++){
compress(new File(pathName[i]), out, basedir);
out.close();
} catch (Exception e) {
throw new RuntimeException(e);
public void compress(String srcPathName) {
File file = new File(srcPathName);
if (!file.exists())
throw new RuntimeException(srcPathName + "不存在!");
FileOutputStream fileOutputStream = new FileOutputStream(zipFile);
CheckedOutputStream cos = new CheckedOutputStream(fileOutputStream,
new CRC32());
ZipOutputStream out = new ZipOutputStream(cos);
String basedir = "";
compress(file, out, basedir);
out.close();
} catch (Exception e) {
throw new RuntimeException(e);
private void compress(File file, ZipOutputStream out, String basedir) {
/* 判断是目录还是文件 */
if (file.isDirectory()) {
System.out.println("压缩:" + basedir + file.getName());
pressDirectory(file, out, basedir);
System.out.println("压缩:" + basedir + file.getName());
pressFile(file, out, basedir);
/** 压缩一个目录 */
private void compressDirectory(File dir, ZipOutputStream out, String basedir) {
if (!dir.exists())
File[] files = dir.listFiles();
for (int i = 0; i & files. i++) {
/* 递归 */
compress(files[i], out, basedir + dir.getName() + "/");
/** 压缩一个文件 */
private void compressFile(File file, ZipOutputStream out, String basedir) {
if (!file.exists()) {
BufferedInputStream bis = new BufferedInputStream(
new FileInputStream(file));
ZipEntry entry = new ZipEntry(basedir + file.getName());
out.putNextEntry(entry);
byte data[] = new byte[BUFFER];
while ((count = bis.read(data, 0, BUFFER)) != -1) {
out.write(data, 0, count);
bis.close();
} catch (Exception e) {
throw new RuntimeException(e);
public static void main(String[] args) {
ZipCompressor zc = new ZipCompressor("E:/resource/resource.zip");
zc.compress("E:/resource/js","E:/resource/css","E:/resource/images");
浏览 11088
zhangzhaoaaa
浏览: 658632 次
来自: 北京
2楼理解很透呀,我用程序测了,是正确的。
另外一个方法实现eclipse tomcat 热部署:http ...
this.mockMvc = webAppContextSet ...如何将压缩文件切割成指定大小压缩包
如何将压缩文件切割成指定大小压缩包:
  很多朋友会说,切割压缩文件?不就是WinRAR的分卷压缩功能嘛!当然不是这么简单!谁都知道WinRAR可以分卷进行压缩,但是它只能在将文件打包的过程中进行,却无法将已经压好的压缩包***成指定大小的缩包!
  笔者今天向大家推荐这款可以切割RAR压缩包的小软件&&RARAuto。现在网络上传很多都会限制单个文件附件大小,我们又有不少现成的RAR压缩包,按照传统的方法只能将压缩包解压缩后再重新进行分卷压缩,用它切割压缩包实在是非常方便。
  这款小软件其实就是一个BAT批处理文件,所以它默认的属性是隐藏的,因此需要将当前电脑系统的查看属性改为可查看隐藏文件(为了方便起见,大家可以取消它的&隐藏&属性)。
  操作的时候,只要将想要切割的压缩包文件拖放到&RAR 自动分卷压缩助手.bat&上即可(如图所示)。它会自动调用WinRAR程序并开始进行分卷压缩,一旦分压缩包制作完毕,就会自动打开保存分压缩包的的目录,并且文件夹当中还会生成一个&分割记录的&文本文件。  
  那么如何设置它的分压缩包的大小及生成的压缩包们的保存目录呢?很简单,只需用记事本打开这个,修改里面的如下参数即可:
  set size=500k(子压缩包的大小)
  Set BBSpath=d:\yasuo(保存子压缩包的目录)
阅读本文后您有什么感想? 已有
人给出评价!
13-12-2211-10-1910-06-2110-06-2110-06-2110-04-2010-04-1910-04-07
注:您的评论需要经过审核才会显示出来
没有查询到任何记录。
Copyright &
PC6下载().All Rights Reserved
备案编号:湘ICP备号

参考资料

 

随机推荐