[转]实现文件压缩

/**创建一个压缩文件,from为文件夹路径,to为创建好后压缩文件路径*/
public void CreateZip(String from,String to) throws IOException
{
List<File>list=getFiles(from);
ZipOutputStream out=new ZipOutputStream(new FileOutputStream(new File(to)));
for(File f:list)
{
InputStream in=new FileInputStream(f);
String name=getRelName(from,f);  

ZipEntry en=new ZipEntry(new File(from).getName()+"/"+name);
en.setSize(f.length());  

out.putNextEntry(en);
out.setComment("中文测试");  

int len=0;
byte[]buffer=new byte[1024];
while(-1!=(len=in.read(buffer)))
{
out.write(buffer, 0, len);
}
in.close();
}
out.close();
}
/**获取文件的相对路径*/
private String getRelName(String from,File f) {
// TODO Auto-generated method stub
String a=f.getAbsolutePath().replace(from+"\\", "");
a=a.replace("\\", "/");
System.out.println(from+"---"+a);
return a;
}
/**获取路径下所有文件,包括文件夹下的*/
private List<File> getFiles(String sou)
{
List<File>list=new ArrayList<File>();
File f=new File(sou);
File files[]=f.listFiles();
for(File file:files)
{
if(file.isFile())
{
list.add(file);
}
else
{
list.addAll(getFiles(file.getPath()));
}
}
return list;
}

##########################################  

转自:http://blog.csdn.net/liu149339750/article/details/7887701

##########################################

时间: 2024-07-29 19:44:02

[转]实现文件压缩的相关文章

iOS网络-ZipArchive框架的文件压缩和解压

导入第三方框架ZipArchive之后还要在系统库文件中导入一个如下文件(搜索libz出来的任何一个都可以) 文件压缩 -(void)zip { NSArray *arrayM = @[@"/Users/gengqun/Desktop/Snip20160118_866.png", @"/Users/gengqun/Desktop/Snip20160118_867.png", @"/Users/gengqun/Desktop/Snip20160118_868

Linux下的文件压缩和打包

Linux 上的压缩包文件格式,除了 Windows 最常见的*.zip.*.rar..7z后缀的压缩文件,还有 .gz..xz..bz2..tar..tar.gz..tar.xz.tar.bz2 文件后缀名                               说明 *.zip                       zip程序打包压缩的文件 *.rar                          rar程序压缩的文件 *.tar                     tar

grunt-js文件压缩

grunt常用函数说明: Grunt : javascript世界的构建工具. grunt.initConfig : 定义各种模块的参数,每个成员项对应的一个同名模块. grunt.loadNpMTasks : 加载完成所需要的模块. grunt.registerTask : 定义具体的任务.第一个参数为任务名.第二个参数是一个数组,表示该任务需要一次使用的模块. 用于模块配置,它接受一个对象作为参数.该对象的成员与使用的同名模块--对应. (js文件压缩代码) // Project confi

php 文件压缩

PclZip文件压缩实现(推荐) 我在做项目是的时候有个打包下载的需求:把上传的多个文件压缩成一个文件并下载,我用的比较强大的PclZip类实现的.我的用的是thinkphp3.2框架开发的,具体实现代码如下  /**     * 压缩文件     * @param $zipName  压缩的文件名     * @param $fileName 要压缩的文件路径的数组或字符串     *  @param  $savePath  要保存的路径     * @return bool     */ p

使用VisualStudio进行脚本|样式文件压缩

在vs的Optimization中有个Bundle是专门用来压缩样式和脚本文件 .他有两个继承:StyleBundle.ScriptBundle,从名字上就可看出,StyleBundle专门压缩样式文件.ScriptBundle专门压缩脚本文件. 在App_Start文件夹下,写出BundleCollection,添加需要压缩的文件名 注意:在这里对压缩文件合并而路径名,会产生虚拟路径,可以在浏览器监控中看到.虚拟路径不能和真实路径一样,如果一样程序会找真实路径,压缩会不成功. 将压缩路径引用在

Linux学习笔记&lt;十三&gt;——文件压缩、解压缩和归档

压缩.解压缩命令: 1.compress/uncompress:压缩格式为Z,文件后缀为.Z compress /path/to/file uncompress /path/to/file.Z 2.gzip/gunzip/zcat:压缩格式为gz,文件后缀为.gz gzip [OPTION] /path/to/file:,压缩文件保存在被压缩文件的目录,压缩完成后会删除原文件 -v|verbose:显示指令执行过程 -d:解压缩,解压缩完成后删除原压缩文件 -#:1-9,指定压缩比,默认为6,数

前端部署ant+yuicompressor文件压缩+获取版本号+SSH发布(部分代码)

文件压缩: <apply executable="java" parallel="false" failonerror="true" dest="../../release/publish/ecshop" append="false" force="true"> <fileset dir="../../release/publish/ecshop"&

基于哈夫曼编码的文件压缩(c++版)

本博客由Rcchio原创 我了解到很多压缩文件的程序是基于哈夫曼编码来实现的,所以产生了自己用哈夫曼编码写一个压缩软件的想法,经过查阅资料和自己的思考,我用c++语言写出了该程序,并通过这篇文章来记录一下自己写该程序学到的东西.因为本人写的程序在压缩率上,还有提升的空间,所以本文将不定期更新,但程序整体的思路不会有较大的改动. 一.基于哈夫曼编码可实现压缩文件的原理分析 在计算机中,数据的存储都是二进制的,并且以字节作为基本的存储单位,像英文字母在文本中占一个字节,汉字占两个字节,我们把这种每一

Huffman的应用之文件压缩与解压缩

文件压缩与解压缩> 最近这段时间一直在学习树的这种数据结构,也接触到了Huffman树以及了解了什仫是Huffman编码,而我们常用的zip压缩也是利用的Huffman编码的特性,那仫是不是可以自己实现一个文件压缩呢?当然可以了.在文件压缩中我实现了Huffman树和建堆Heap的代码,zip压缩的介绍> http://www.cricode.com/3481.html 下面开始介绍自己实现的文件压缩的思路和问题... 1).统计>读取一个文件统计这个文件中字符出现的次数. 2).建树&

关于linux系统下文件压缩归档操作命令略提

Linux下文件压缩归档操作命令:gzip/ungzip 后缀 .gz  xz/unxz       后缀 .xz  bzip2/bunzip2 后缀 .bz2  tar 用于归档并压缩  -# :#为0-9 指定压缩比 gzip -c name 压缩结果输出到标准输出  -d 解压缩  -v verbose  zcat 不解压的情况下查看压缩文件  -r 递归压缩 xz -k 保留原文件 xzcat 不解压的情况下查看原文件 tar Jcf FILE.tar.xz /DIR/TO/FILE 将