批量文件打成ZIP压缩包包
压缩文件的操作方法

压缩文件的操作方法
压缩文件是通过将文件压缩为较小的文件大小来节省存储空间和便于传输。
以下是几种常见的压缩文件的操作方法:
1. 使用Windows操作系统自带的压缩功能:
- 选择需要压缩的文件或文件夹,右键点击并选择“发送到”,然后选择“压缩(zipped)文件”。
- 压缩后的文件将在原文件或文件夹所在位置生成,文件名以".zip"为扩展名。
2. 使用第三方压缩软件(如WinRAR、WinZip等):
- 安装压缩软件,并打开软件界面。
- 找到需要压缩的文件或文件夹,并选择压缩选项(通常是点击“添加”或“压缩”按钮)。
- 根据软件的要求,选择压缩格式(如ZIP、RAR等)和压缩级别等设置。
- 指定压缩文件存放位置和文件名,并点击“压缩”按钮。
3. 在Linux或Unix系统中使用压缩命令(如gzip、tar等):
- 打开终端或命令行界面。
- 使用相应的压缩命令及参数来执行压缩操作,例如:
- 使用gzip进行单个文件压缩:`gzip filename.txt`
- 使用tar进行多个文件或文件夹的压缩:`tar -czvf archive.tar.gz folder/ file.txt`
4. 使用在线压缩工具:
- 在互联网上搜索并选择一个在线压缩工具。
- 根据工具的指引,上传需要压缩的文件或文件夹,并执行压缩操作。
- 下载压缩后的文件。
无论使用哪种方法,压缩后的文件通常可以通过双击或解压软件打开,或使用相应的解压命令进行解压缩操作。
shell压缩文件夹的命令

shell压缩文件夹的命令
Shell压缩文件夹的命令可以帮助我们快速地将一个文件夹压缩成一个压缩包,从而方便传输和存储。
下面是几种常见的Shell压缩文件夹的命令:
1. tar命令:tar命令是一个非常常见的Shell压缩命令,可以将多个文件或者文件夹打包成一个文件,并进行压缩。
例如,将文件夹test压缩成一个tar.gz压缩包,可以使用以下命令:
tar -zcvf test.tar.gz test/
其中,-z表示使用gzip进行压缩,-c表示创建一个新的压缩文件,-v表示显示压缩进度,-f表示指定压缩文件名。
2. zip命令:zip命令也是一个常用的Shell压缩命令,可以将一个或多个文件或文件夹压缩成一个zip文件。
例如,将文件夹test 压缩成一个test.zip压缩包,可以使用以下命令:
zip -r test.zip test/
其中,-r表示递归压缩子文件夹,test/表示要压缩的文件夹路径。
3. rar命令:rar命令是一个商业压缩软件,但也可以在Shell 中使用。
例如,将文件夹test压缩成一个test.rar压缩包,可以使用以下命令:
rar a test.rar test/
其中,a表示添加文件到压缩包中,test/表示要压缩的文件夹路径。
以上是几种常见的Shell压缩文件夹的命令,可以根据自己的需求选择合适的命令进行使用。
文件压缩快捷键

文件压缩快捷键随着信息技术的飞速发展,我们每天都会处理大量的文件,如文档、图片、音频、视频等。
为了有效管理这些文件,并方便地进行传输和共享,文件压缩成为一种常用的方法。
而为了提高操作效率,掌握文件压缩快捷键是非常重要的。
本文将为大家介绍一些常用的文件压缩快捷键,帮助您更加便捷地进行文件压缩。
一、WinRAR压缩软件WinRAR是一款功能强大的文件压缩软件,广泛应用于Windows操作系统。
下面是一些常用的WinRAR文件压缩快捷键:1. Alt + A:添加文件到压缩包按下Alt键,并在同时按下A键,可以直接将选中的文件添加到压缩包中。
2. Alt + E:提取压缩包中的文件按下Alt键,并在同时按下E键,可以快速提取当前压缩包中的文件。
3. Alt + T:压缩文件夹(包括子文件夹)按下Alt键,并在同时按下T键,可以将指定文件夹及其子文件夹一起压缩。
4. Alt + R:将文件添加到现有压缩包按下Alt键,并在同时按下R键,可以将选中的文件添加到当前已存在的压缩包中。
5. Alt + X:从压缩包中删除文件按下Alt键,并在同时按下X键,可以快速从当前压缩包中删除选中的文件。
6. Alt + Z:压缩文件并分卷保存按下Alt键,并在同时按下Z键,可以将文件压缩并按照指定大小进行分卷保存。
二、7-Zip文件管理器7-Zip是一款开源的文件压缩软件,支持多种文件格式。
以下是7-Zip文件管理器中常用的文件压缩快捷键:1. Ctrl + A:全选文件按下Ctrl键,并在同时按下A键,可以全选当前显示的文件。
2. F5:复制文件按下F5键,可以将选中的文件复制到目标位置。
3. F6:移动文件按下F6键,可以将选中的文件移动到目标位置。
4. F7:在压缩包中创建新文件夹按下F7键,可以在当前压缩包内创建新的文件夹。
5. F9:刷新文件列表按下F9键,可以刷新当前文件列表,显示最新的文件信息。
6. F10:退出7-Zip文件管理器按下F10键,可以快速退出7-Zip文件管理器。
linux压缩ZIP命令

linux压缩ZIP命令linux zip命令zip -r myfile.zip ./*将当前目录下的所有文件和文件夹全部压缩成myfile.zip文件,-r表示递归压缩子目录下所有文件.2.unzipunzip -o -d /home/sunny myfile.zip把myfile.zip文件解压到 /home/sunny/-o:不提示的情况下覆盖文件;-d:-d /home/sunny 指明将文件解压缩到/home/sunny目录下;3.其他zip -d myfile.zip smart.txt删除压缩文件中smart.txt文件zip -m myfile.zip ./rpm_info.txt向压缩文件中myfile.zip中添加rpm_info.txt文件要使用zip 来压缩文件,在shell 提示下键入下面的命令:zip -r filename.zip filesdir在这个例子里,filename.zip 代表你创建的文件,filesdir 代表你想放置新zip 文件的目录。
-r 选项指定你想递归地(recursively)包括所有包括在filesdir 目录中的文件。
要抽取zip 文件的内容,键入以下命令:unzip filename.zip你可以使用zip 命令同时处理多个文件和目录,方法是将它们逐一列出,并用空格间隔:zip -r filename.zip file1 file2 file3 /usr/work/school上面的命令把file1、file2、file3、以及/usr/work/school目录的内容(假设这个目录存在)压缩起来,然后放入filename.zip 文件中。
tar 命令详解-c: 建立压缩档案-x:解压-t:查看内容-r:向压缩归档文件末尾追加文件-u:更新原压缩包中的文件这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个。
不同文件夹批量解压缩文件夹的方法

随着互联网技术的不断发展,我们在日常工作和生活中经常会遇到需要解压缩文件夹的情况。
特别是对于一些下载的压缩包或者收到的压缩文件夹,我们需要将其中的文件进行解压缩,以便查看、编辑或者使用。
在实际操作过程中,如果我们需要批量解压缩多个文件夹,有时候会感到麻烦和不方便。
本文将介绍一些不同的方法,帮助大家更加有效地批量解压缩文件夹。
一、使用压缩软件批量解压缩文件夹1.选择一款功能强大的压缩软件,例如WinRAR、7-Zip等。
这些软件都可以在冠方全球信息站上进行免费下载和安装,具有良好的用户口碑和稳定的性能。
2.打开压缩软件,找到“批量解压缩”或者“批量处理”功能。
不同的压缩软件可能会有不同的界面和操作方式,但大多数软件都会提供批量处理的功能。
3.选择需要批量解压缩的文件夹,然后在软件界面上选择相应的操作命令,如“解压缩到指定文件夹”、“批量解压缩”等。
根据软件的提示和操作指南,进行相应的设置和确认操作。
4.等待软件自动完成批量解压缩过程,根据文件夹大小和数量的不同,可能需要一定的时间。
在操作完成后,可以在指定的文件夹中查看解压缩后的文件。
二、使用批处理文件进行批量解压缩1.在计算机上创建一个新的文本文件,例如“bulk_unzip.bat”。
右键单击该文件,并选择“编辑”以打开文件编辑器。
2.在文本文件中输入批处理命令,例如使用Windows系统的解压命令:“for I in (*.zip) do "C:\Program Files\7-Zip\7z" x "I" -o"~nI\"”,这个命令将对当前目录下所有的zip文件进行解压缩,并将解压后的文件夹保存在以zip文件名命名的文件夹中。
3.保存并关闭文本文件,并将其批处理文件的后缀名修改为“.bat”。
4.在需要批量解压缩的文件夹所在目录下,双击运行批处理文件,系统将自动执行批处理命令,进行批量解压缩操作。
批量替换压缩包的方法

批量替换压缩包的方法在日常工作和生活中,我们常常需要处理大量的压缩包,例如将某个文件夹压缩成一个zip格式的包,或者批量压缩某个文件夹下的所有文件,如果每个文件都单独压缩一遍,就会非常繁琐。
有时候,我们需要对压缩包中的某些文件进行替换操作,例如在下载了一个压缩包之后,里面有一些文件已经过时了,我们需要将它们替换成最新的。
这种情况下,如何批量替换压缩包中的文件呢?接下来,我们将介绍一些可行的方法。
方法一:使用压缩软件进行替换大多数压缩软件都可以支持替换操作,比如WinRAR、WinZip、7-Zip等。
下面以WinRAR为例介绍具体的操作流程。
1. 首先,打开WinRAR软件,找到需要替换的压缩包并双击打开。
2. 在压缩包的文件列表中,选中需要替换的文件,并点击“替换”按钮。
4. 替换完成后,关闭WinRAR软件即可。
需要注意的是,使用压缩软件进行替换操作时,不能对压缩包内的文件夹进行替换操作。
方法二:使用PowerShell进行替换PowerShell是一种强大的命令行工具,可以用于管理Windows系统的各种任务,包括处理文件和压缩包等。
下面介绍如何使用PowerShell进行替换操作。
1. 首先,打开PowerShell工具,依次输入以下命令:```$zipFile = "C:\path\to\zipfile.zip" # 压缩包路径$zipTemp = "$env:Temp\unzip" # 临时解压路径$zipTarget = "file.txt" # 替换目标文件$fileSource = "C:\path\to\new\file.txt" # 新文件路径Expand-Archive -Path $zipFile -DestinationPath $zipTemp -ForceCopy-Item -Path $fileSource -Destination "$zipTemp\$zipTarget" -ForceCompress-Archive -Path $zipTemp\* -DestinationPath $zipFile -ForceRemove-Item -Path $zipTemp -Recurse```2. 其中,第一行命令定义了需要替换的压缩包的路径,第二行命令定义了临时解压路径,第三行命令定义了需要替换的目标文件名,第四行命令定义了新文件的路径。
php打包压缩文件之ZipArchive方法用法分析
php打包压缩⽂件之ZipArchive⽅法⽤法分析本⽂实例讲述了php打包压缩⽂件之ZipArchive⽅法⽤法。
分享给⼤家供⼤家参考,具体如下:前⾯说到了php打包压缩⽂件之PclZip⽅法,今天来说下另⼀种更为简单的⽅法,使⽤ZipArchive来压缩⽂件。
这个是php的扩展类,⾃php5.2版本以后就已经⽀持这个扩展,如果你在使⽤的时候出现错误,查看下php.ini⾥⾯的extension=php_zip.dll 前⾯的分号有没有去掉,然后再重启Apache这样才能使⽤这个类库。
<?php$zip = new ZipArchive; //⾸先实例化这个类if ($zip->open('test.zip') === TRUE) { //然后查看是否存在test.zip这个压缩包$zip->addFile('too.php');$zip->addFile('test.php'); //将too.php和test.php两个⽂件添加到test.zip压缩包中$zip->close(); //关闭echo 'ok';} else {echo 'failed';}>下⾯是⼀些参数说明:<?php/******** ziparchive 可选参数 *******//*1.ZipArchive::addEmptyDir添加⼀个新的⽂件⽬录2.ZipArchive::addFile将⽂件添加到指定zip压缩包中。
3.ZipArchive::addFromString添加的⽂件同时将内容添加进去4.ZipArchive::close关闭ziparchive5.ZipArchive::extractTo将压缩包解压6.ZipArchive::open打开⼀个zip压缩包7.ZipArchive::getStatusString返回压缩时的状态内容,包括错误信息,压缩信息等等8.ZipArchive::deleteIndex删除压缩包中的某⼀个⽂件,如:deleteIndex(0)删除第⼀个⽂件9.ZipArchive::deleteName删除压缩包中的某⼀个⽂件名称,同时也将⽂件删除。
Java将文件夹保留目录打包为ZIP压缩包并下载的教程详解
Java将⽂件夹保留⽬录打包为ZIP压缩包并下载的教程详解上周做了⼀个需求,要求将数据库保存的 html 界⾯取出后将服务器下的css和js⽂件⼀起打包压缩为ZIP⽂件,返回给前台;在数据库中保存的是html标签,查出后,我把这些内容写⼊css 和js等其他⽂件所在⽬录的⼀个⽂件内,然后将这整个⽂件夹压缩打包下载,解决过程中遇到了下载出来后并没有保存层级⽬录,在查了好久⽅法后完成了如下版本,已经可以正常下载并保留层级⽬录。
//ZIP⽂件包压缩下载@Overridepublic void downloadZip(String id,HttpServletResponse response) {String zipPath = "你的路径";File file = new File(zipPath,"index.html");//创建指定⽬录和⽂件名称的⽂件对象BufferedWriter bw = null;//创建缓冲流try {//校验⽂件⽬录是否存在,⽂件是否存在chenkFile(file,zipPath);//这⼀步是我将指定内容从数据库写⼊⽂件ModuleInfo moduleInfo = moduleDao.getByModId(id);bw = new BufferedWriter(new FileWriter(file));//把内容写⼊临时⽂件中bw.write(moduleInfo.getContent());//此处不能删除,要关闭⼀次不关闭⽆法写⼊内容导致压缩包内⽂件⽆内容bw.flush();bw.close();//将⽬标⽂件压缩为ZIP并下载ZipUtil.zip(zipPath,response);//删除⽂件(防⽌下⼀次压缩时有重复⽂件名)file.delete();} catch (Exception e) {log.error("html压缩"+e.getMessage(),e);}finally {//这是我写的IO流关闭⼯具类如需要可以看我关于IO流关闭的⽂章IOCloseUtils.ioClose(bw);}}//判断⽂件⽬录和⽂件是否存在如否则新建public void chenkFile(File file,String path){try {if (file.exists()){//如果⽬录存在if (!file.isDirectory()){//如果⽂件不存在file.createNewFile();//创建⽂件}}else {//如果⽬录不存在File file1 = new File(path);//创建指定⽬录⽂件对象file1.mkdirs();//创建⽬录file.createNewFile();//创建⽂件}} catch (IOException e) {log.error(e.getMessage(),e);}}public static void zip(String sourceFileName, HttpServletResponse response){ZipOutputStream out = null;BufferedOutputStream bos = null;try {//将zip以流的形式输出到前台response.setHeader("content-type", "application/octet-stream");response.setCharacterEncoding("utf-8");// 设置浏览器响应头对应的Content-disposition//参数中 testZip 为压缩包⽂件名,尾部的.zip 为⽂件后缀response.setHeader("Content-disposition","attachment;filename=" + new String("testZip".getBytes("gbk"), "iso8859-1")+".zip");//创建zip输出流out = new ZipOutputStream(response.getOutputStream());//创建缓冲输出流bos = new BufferedOutputStream(out);File sourceFile = new File(sourceFileName);//调⽤压缩函数compress(out, bos, sourceFile, sourceFile.getName());out.flush();("压缩完成");} catch (Exception e) {log.error("ZIP压缩异常:"+e.getMessage(),e);} finally {IOCloseUtils.ioClose(bos,out);}}public static void compress(ZipOutputStream out, BufferedOutputStream bos, File sourceFile, String base){FileInputStream fos = null;BufferedInputStream bis = null;try {//如果路径为⽬录(⽂件夹)if (sourceFile.isDirectory()) {//取出⽂件夹中的⽂件(或⼦⽂件夹)File[] flist = sourceFile.listFiles();if (flist.length == 0) {//如果⽂件夹为空,则只需在⽬的地zip⽂件中写⼊⼀个⽬录进⼊点out.putNextEntry(new ZipEntry(base + "/"));} else {//如果⽂件夹不为空,则递归调⽤compress,⽂件夹中的每⼀个⽂件(或⽂件夹)进⾏压缩for (int i = 0; i < flist.length; i++) {compress(out, bos, flist[i], base + "/" + flist[i].getName());}}} else {//如果不是⽬录(⽂件夹),即为⽂件,则先写⼊⽬录进⼊点,之后将⽂件写⼊zip⽂件中out.putNextEntry(new ZipEntry(base));fos = new FileInputStream(sourceFile);bis = new BufferedInputStream(fos);int tag;//将源⽂件写⼊到zip⽂件中while ((tag = bis.read()) != -1) {out.write(tag);}bis.close();fos.close();}} catch (Exception e) {e.printStackTrace();} finally {IOCloseUtils.ioClose(bis,fos);}}如图下载后如图所⽰,名为 testZip.zip 的⽂件层级⽬录都有保留总结到此这篇关于Java将⽂件夹保留⽬录打包为 ZIP 压缩包并下载的教程详解的⽂章就介绍到这了,更多相关java将⽂件打包为zip压缩包下载内容请搜索以前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持!。
Mac命令行使用技巧批量处理压缩文件和归档
Mac命令行使用技巧批量处理压缩文件和归档在Mac上,命令行是一个非常强大的工具,它可以帮助我们更高效地处理各种任务。
其中,批量处理压缩文件和归档是命令行的一项常见应用。
本文将介绍一些Mac命令行使用技巧,帮助你轻松完成批量处理压缩文件和归档的操作。
1. 压缩文件在命令行中,使用"zip"命令可以对文件和目录进行压缩。
具体格式如下:```zip [压缩文件名] [待压缩文件/目录路径]```例如,要压缩当前目录下的文件夹"folder1",可以使用以下命令:```zip -r compressed.zip folder1```该命令将会将"folder1"目录及其内部的所有文件和子目录压缩成一个名为"compressed.zip"的文件。
2. 批量压缩文件如果你需要批量压缩多个文件或目录,可以结合循环语句和"zip"命令来实现。
以下是一个示例:```for file in folder1 folder2 folder3dozip -r compressed_$file.zip $filedone```上述命令将依次对"folder1"、"folder2"和"folder3"目录进行压缩,并生成相应的压缩文件。
3. 解压缩文件在命令行中,使用"unzip"命令可以对压缩文件进行解压缩。
具体格式如下:```unzip [压缩文件路径]```例如,要解压缩当前目录下的"compressed.zip"文件,可以使用以下命令:```unzip compressed.zip```该命令将会将"compressed.zip"文件解压缩到当前目录下。
4. 归档文件归档文件是指将多个文件合并成一个单独的文件,例如tar格式的归档文件。
Java实现将文件或者文件夹压缩成zip的详细代码
Java实现将⽂件或者⽂件夹压缩成zip的详细代码最近碰到个需要下载zip压缩包的需求,于是我在⽹上找了下别⼈写好的zip⼯具类。
但找了好多篇博客,总是发现有bug。
因此就⾃⼰来写了个⼯具类。
这个⼯具类的功能为:(1)可以压缩⽂件,也可以压缩⽂件夹(2)同时⽀持压缩多级⽂件夹,⼯具内部做了递归处理(3)碰到空的⽂件夹,也可以压缩(4)可以选择是否保留原来的⽬录结构,如果不保留,所有⽂件跑压缩包根⽬录去了,且空⽂件夹直接舍弃。
注意:如果不保留⽂件原来⽬录结构,在碰到⽂件名相同的⽂件时,会压缩失败。
(5)代码中提供了2个压缩⽂件的⽅法,⼀个的输⼊参数为⽂件夹路径,⼀个为⽂件列表,可根据实际需求选择⽅法。
下⾯直接上代码⼀、代码package com.tax.core.util;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.io.OutputStream;import java.util.ArrayList;import java.util.List;import java.util.zip.ZipEntry;import java.util.zip.ZipOutputStream;/*** ZipUtils* @author ZENG.XIAO.YAN* @date 2017年11⽉19⽇下午7:16:08* @version v1.0*/public class ZipUtils {private static final int BUFFER_SIZE = 2 * 1024;/*** 压缩成ZIP ⽅法1* @param srcDir 压缩⽂件夹路径* @param out 压缩⽂件输出流* @param KeepDirStructure 是否保留原来的⽬录结构,true:保留⽬录结构;* false:所有⽂件跑到压缩包根⽬录下(注意:不保留⽬录结构可能会出现同名⽂件,会压缩失败)* @throws RuntimeException 压缩失败会抛出运⾏时异常*/public static void toZip(String srcDir, OutputStream out, boolean KeepDirStructure)throws RuntimeException{long start = System.currentTimeMillis();ZipOutputStream zos = null ;try {zos = new ZipOutputStream(out);File sourceFile = new File(srcDir);compress(sourceFile,zos,sourceFile.getName(),KeepDirStructure);long end = System.currentTimeMillis();System.out.println("压缩完成,耗时:" + (end - start) +" ms");} catch (Exception e) {throw new RuntimeException("zip error from ZipUtils",e);}finally{if(zos != null){try {zos.close();} catch (IOException e) {e.printStackTrace();}}}}/*** 压缩成ZIP ⽅法2* @param srcFiles 需要压缩的⽂件列表* @param out 压缩⽂件输出流* @throws RuntimeException 压缩失败会抛出运⾏时异常*/public static void toZip(List<File> srcFiles , OutputStream out)throws RuntimeException { long start = System.currentTimeMillis();ZipOutputStream zos = null ;try {zos = new ZipOutputStream(out);for (File srcFile : srcFiles) {byte[] buf = new byte[BUFFER_SIZE];zos.putNextEntry(new ZipEntry(srcFile.getName()));int len;FileInputStream in = new FileInputStream(srcFile);while ((len = in.read(buf)) != -1){zos.write(buf, 0, len);}zos.closeEntry();in.close();}long end = System.currentTimeMillis();System.out.println("压缩完成,耗时:" + (end - start) +" ms");} catch (Exception e) {throw new RuntimeException("zip error from ZipUtils",e);}finally{if(zos != null){try {zos.close();} catch (IOException e) {e.printStackTrace();}}}}/*** 递归压缩⽅法* @param sourceFile 源⽂件* @param zos zip输出流* @param name 压缩后的名称* @param KeepDirStructure 是否保留原来的⽬录结构,true:保留⽬录结构;* false:所有⽂件跑到压缩包根⽬录下(注意:不保留⽬录结构可能会出现同名⽂件,会压缩失败) * @throws Exception*/private static void compress(File sourceFile, ZipOutputStream zos, String name,boolean KeepDirStructure) throws Exception{byte[] buf = new byte[BUFFER_SIZE];if(sourceFile.isFile()){// 向zip输出流中添加⼀个zip实体,构造器中name为zip实体的⽂件的名字zos.putNextEntry(new ZipEntry(name));// copy⽂件到zip输出流中int len;FileInputStream in = new FileInputStream(sourceFile);while ((len = in.read(buf)) != -1){zos.write(buf, 0, len);}// Complete the entryzos.closeEntry();in.close();} else {File[] listFiles = sourceFile.listFiles();if(listFiles == null || listFiles.length == 0){// 需要保留原来的⽂件结构时,需要对空⽂件夹进⾏处理if(KeepDirStructure){// 空⽂件夹的处理zos.putNextEntry(new ZipEntry(name + "/"));// 没有⽂件,不需要⽂件的copyzos.closeEntry();}}else {for (File file : listFiles) {// 判断是否需要保留原来的⽂件结构if (KeepDirStructure) {// 注意:file.getName()前⾯需要带上⽗⽂件夹的名字加⼀斜杠,// 不然最后压缩包中就不能保留原来的⽂件结构,即:所有⽂件都跑到压缩包根⽬录下了 compress(file, zos, name + "/" + file.getName(),KeepDirStructure);} else {compress(file, zos, file.getName(),KeepDirStructure);}}}}}public static void main(String[] args) throws Exception {/** 测试压缩⽅法1 */FileOutputStream fos1 = new FileOutputStream(new File("c:/mytest01.zip"));ZipUtils.toZip("D:/log", fos1,true);/** 测试压缩⽅法2 */List<File> fileList = new ArrayList<>();fileList.add(new File("D:/Java/jdk1.7.0_45_64bit/bin/jar.exe"));fileList.add(new File("D:/Java/jdk1.7.0_45_64bit/bin/java.exe"));FileOutputStream fos2 = new FileOutputStream(new File("c:/mytest02.zip"));ZipUtils.toZip(fileList, fos2);}}⼆、注意事项写该⼯具类时,有些注意事项说⼀下:(1)⽀持选择是否保留原来的⽂件⽬录结构,如果不保留,那么空⽂件夹直接不⽤处理。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
批量文件打包
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
import java.util.zip.ZipOutputStream;
public class ZipFile {
//注.该代码会将该文件夹下的所有文件进行打包
//destinationDir 打包成功后ZIP存放的路径
//fileName 是你要打包成功后生成的文件名
private String destinationDir = ""; // zip file dir
private String fileName = ""; // zip file name
private ZipOutputStream zout; // zip class
private ZipInputStream zin;
public ZipFile(String temp1,String temp2){
this.destinationDir = temp1;
this.fileName=temp2;
}
public void newZip() throws FileNotFoundException {
File temp=new File(this.destinationDir);
temp.mkdirs();
zout =
new ZipOutputStream(
new FileOutputStream(
this.destinationDir + "\\" + this.fileName));
}
//首先刪除该文件夾下所有文件
public void deleteAllFile(File tempDir) throws Exception {
File temp_file[] = null;
temp_file = tempDir.listFiles();
for (int i = 0; i < temp_file.length; i++) {
if (temp_file[i].isFile()) {
temp_file[i].delete();
}
}
}
//压缩文件夹下面的所有文件为ZIP文件 tempDir是需要打包
的文件夹路径
public void createZipFile(File tempDir) throws Exception
{
File temp_file[] = null;
System.out.println(tempDir);
byte temp[] = new byte[512];
temp_file = tempDir.listFiles();
for (int i = 0; i < temp_file.length; i++) {
if (temp_file[i].isFile()) {
FileInputStream in = new
FileInputStream(temp_file[i]);
String temp1=new
String(temp_file[i].getAbsolutePath().getBytes("ISO8859-1"));
if(!temp1.endsWith("zip")){
ZipEntry zip =
new ZipEntry(temp_file[i].getName());
zout.putNextEntry(zip);
int len = 0;
while ((len = in.read(temp)) != -1) {
zout.write(temp, 0, len);
}
zout.closeEntry();
}
}else{
createZipFile(temp_file[i]);
}
}
}
public void closeZip() throws Exception{
this.zout.close();
}
public void getZipFile(File tempDir){
try{
this.newZip();
this.createZipFile(tempDir);
this.closeZip();
}catch(Exception e){
e.printStackTrace();
}
}
//调用上面的方法
public static void main(String[] args) {
File path = new File("打包成功后zip的路径");
try {
new ZipFile("需打包的文件夹路径","打包成功后的文件名
").getZipFile(path);
//如:new ZipFile("E:\\Test","abc").getZipFile(path);
} catch (Exception e) {
e.printStackTrace();
}
}
}
@
注:在这里deleteAllFile该方法并没有调用根据不同的需求在决定是否使用