精华内容
下载资源
问答
  • java使用ant实现Zip文件压缩、解压缩Zip文件。 单个文件压缩成Zip文件,多个文件压缩成Zip文件。 使用ant实现大文件压缩。

    java使用ant实现Zip文件压缩、解压缩Zip文件。

    单个文件压缩成Zip文件,多个文件压缩成Zip文件。

    可以压缩大文件。

    需要使用到ant.jar文件,放到lib目录下。

    ant.jar下载:http://download.csdn.net/detail/xinxin19881112/8906157


    Zip.java

    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.OutputStream;
    import java.util.zip.ZipOutputStream;
    import org.apache.tools.zip.ZipEntry;
    
    /**
     * ZIP操作工具类
     */
    public class Zip {
    	
    	/**
    	 * 压缩文件列表到某ZIP文件
    	 * @param zipFilename 要压缩到的ZIP文件
    	 * @param paths 文件列表,多参数
    	 * @throws Exception
    	 */
    	public static void compress(String zipFilename, String... paths)
    			throws Exception {
    		compress(new FileOutputStream(zipFilename), paths);
    	}
    
    	/**
    	 * 压缩文件列表到输出流
    	 * @param os 要压缩到的流
    	 * @param paths 文件列表,多参数
    	 * @throws Exception
    	 */
    	public static void compress(OutputStream os, String... paths)
    			throws Exception {
    		ZipOutputStream zos = new ZipOutputStream(os);
    		for (String path : paths) {
    			if (path.equals(""))
    				continue;
    			java.io.File file = new java.io.File(path);
    			if (file.exists()) {
    				if (file.isDirectory()) {
    					zipDirectory(zos, file.getPath(), file.getName()
    							+ File.separator);
    				} else {
    					zipFile(zos, file.getPath(), "");
    				}
    			}
    		}
    		zos.close();
    	}
    	
    	private static void zipDirectory(ZipOutputStream zos, String dirName,
    			String basePath) throws Exception {
    		File dir = new File(dirName);
    		if (dir.exists()) {
    			File files[] = dir.listFiles();
    			if (files.length > 0) {
    				for (File file : files) {
    					if (file.isDirectory()) {
    						zipDirectory(zos, file.getPath(), basePath
    								+ file.getName().substring(
    										file.getName().lastIndexOf(
    												File.separator) + 1)
    								+ File.separator);
    					} else
    						zipFile(zos, file.getPath(), basePath);
    				}
    			} else {
    				ZipEntry ze = new ZipEntry(basePath);
    				zos.putNextEntry(ze);
    			}
    		}
    	}
    
    	private static void zipFile(ZipOutputStream zos, String filename,
    			String basePath) throws Exception {
    		File file = new File(filename);
    		if (file.exists()) {
    			FileInputStream fis = new FileInputStream(filename);
    			ZipEntry ze = new ZipEntry(basePath + file.getName());
    			zos.putNextEntry(ze);
    			byte[] buffer = new byte[8192];
    			int count = 0;
    			while ((count = fis.read(buffer)) > 0) {
    				zos.write(buffer, 0, count);
    			}
    			fis.close();
    		}
    	}
    }



    TestCompress.java

    import java.io.FileOutputStream;
    
    import com.xx.commmon.Zip;
    
    /**
     * 压缩文件测试
     */
    public class TestCompress {
    
    	public static void main(String[] args) {
    		// 要压缩的文件列表
    		String path01 = "E:\\下载\\cn_windows_8_x86_dvd_915414.iso";
    		String path02 = "e:\\PPT模版_V0.1.potx";
    		try {
    			FileOutputStream os = new FileOutputStream("e:\\测试.zip"); // 输出的ZIP文件流
    			Zip.compress(os, path01);
    		} catch (Exception e) {
    			e.printStackTrace();
    		}
    	}
    
    }



    TestEctractZip.java

    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.util.ArrayList;
    import java.util.zip.ZipEntry;
    import java.util.zip.ZipInputStream;
    
    /**
     * 解压缩测试
     */
    public class TestEctractZip {
    
    	@SuppressWarnings( { "unchecked", "static-access" })
    	public static void main(String[] args) {
    		TestEctractZip z = new TestEctractZip();
    		ArrayList<String> a = z.Ectract("C:\\a.zip", "C:\\tmp\\"); // 返回解压缩出来的文件列表
    		for(String s : a){
    			System.out.println(s);
    		}
    	}
    
    	/**
    	 * 解压缩
    	 * @param sZipPathFile 要解压的文件
    	 * @param sDestPath 解压到某文件夹
    	 * @return
    	 */
    	@SuppressWarnings("unchecked")
    	public static ArrayList Ectract(String sZipPathFile, String sDestPath) {
    		ArrayList<String> allFileName = new ArrayList<String>();
    		try {
    			// 先指定压缩档的位置和档名,建立FileInputStream对象
    			FileInputStream fins = new FileInputStream(sZipPathFile);
    			// 将fins传入ZipInputStream中
    			ZipInputStream zins = new ZipInputStream(fins);
    			ZipEntry ze = null;
    			byte[] ch = new byte[256];
    			while ((ze = zins.getNextEntry()) != null) {
    				File zfile = new File(sDestPath + ze.getName());
    				//File zfile = new File(sDestPath +File.separator+ ze.getName());
    				File fpath = new File(zfile.getParentFile().getPath());
    				if (ze.isDirectory()) {
    					if (!zfile.exists())
    						zfile.mkdirs();
    					zins.closeEntry();
    				} else {
    					if (!fpath.exists())
    						fpath.mkdirs();
    					FileOutputStream fouts = new FileOutputStream(zfile);
    					int i;
    					allFileName.add(zfile.getAbsolutePath());
    					while ((i = zins.read(ch)) != -1)
    						fouts.write(ch, 0, i);
    					zins.closeEntry();
    					fouts.close();
    				}
    			}
    			fins.close();
    			zins.close();
    		} catch (Exception e) {
    			System.err.println("Extract error:" + e.getMessage());
    		}
    		return allFileName;
    	}
    }


    新新:http://blog.csdn.net/xinxin19881112/article/details/46913931

    展开全文
  • java解压zip文件

    万次阅读 2020-09-03 10:57:01
    import org.apache.tools.zip.ZipEntry; import org.apache.tools.zip.ZipFile; import java.io.*; import java.util.Enumeration;... * 解压zip文件 * @author xiyue * @param sourceFile,待解压的zi
    package com.chuangqi.tools;
    
    import org.apache.tools.zip.ZipEntry;
    import org.apache.tools.zip.ZipFile;
    
    import java.io.*;
    import java.util.Enumeration;
    
    public class FileUnZipUtils {
    	/**
         * 解压zip文件
         * @author xiyue
         * @param sourceFile,待解压的zip文件;
         *        toFolder,解压后的存放路径
         * @throws Exception
         **/
     
    	public static void zipToFile(String sourceFile, String toFolder) throws Exception {
    			String toDisk = toFolder;// 接收解压后的存放路径
    			ZipFile zfile = new ZipFile(sourceFile, "gbk");// 连接待解压文件 "utf-8"会乱码
    			Enumeration zList = zfile.getEntries();// 得到zip包里的所有元素
    			ZipEntry ze = null;
    			byte[] buf = new byte[1024];
    			while (zList.hasMoreElements()) {
    			ze = (ZipEntry) zList.nextElement();
    			if (ze.isDirectory()) {
    				// log.info("打开zip文件里的文件夹:"+ ze.getName() +"skipped...");
    
    				File f = new File(toDisk+"/" + ze.getName());
    				f.mkdirs();
    				continue;
    			}
    			OutputStream outputStream = null;
    			InputStream inputStream = null;
    			try {
    				// 以ZipEntry为参数得到一个InputStream,并写到OutputStream中
    				outputStream = new BufferedOutputStream(new FileOutputStream(getRealFileName(toDisk, ze.getName())));
    				inputStream = new BufferedInputStream(zfile.getInputStream(ze));
    				int readLen = 0;
    				while ((readLen = inputStream.read(buf, 0, 1024)) != -1) {
    					outputStream.write(buf, 0, readLen);
    				}
    				inputStream.close();
    				outputStream.close();
    			} catch (Exception e) {
    				// log.info("解压失败:"+e.toString());
    				throw new IOException("解压失败:" + e.toString());
    			} finally {
    				if (inputStream != null) {
    					try {
    						inputStream.close();
    					} catch (IOException ex) {
     
    					}
    				}
    				if (outputStream != null) {
    					try {
    						outputStream.close();
    					} catch (IOException ex) {
    						ex.printStackTrace();
    					}
    				}
    				inputStream = null;
    				outputStream = null;
    			
    				
    			}
     
    		}
    		zfile.close();
    	}
     
        /**
         * 
         * 给定根目录,返回一个相对路径所对应的实际文件名.
         * 
         * @param zippath
         *            指定根目录
         * 
         * @param absFileName
         *            相对路径名,来自于ZipEntry中的name
         * 
         * @return java.io.File 实际的文件
         * 
         */
     
        private static File getRealFileName(String zippath, String absFileName) {
            // log.info("文件名:"+absFileName);
            String[] dirs = absFileName.split("/", absFileName.length());
            File ret = new File(zippath);// 创建文件对象
            if (dirs.length > 1) {
                for (int i = 0; i < dirs.length - 1; i++) {
                    ret = new File(ret, dirs[i]);
                }
            }
            if (!ret.exists()) {// 检测文件是否存在
                ret.mkdirs();// 创建此抽象路径名指定的目录
            }
            ret = new File(ret, dirs[dirs.length - 1]);// 根据 ret 抽象路径名和 child
                                                        // 路径名字符串创建一个新 File 实例
            return ret;
        }
        
     
        
        
    }
     
    
    
    展开全文
  • 学习Java压缩zip文件:压缩单个文件和多个文件,不包含文件夹;怎样用Java将文件追加到zip文件中。测试类:/** * @FileName:ZipTest.java * @Description: TODO * @Copyright: All rights Reserved, Designed By ...

    学习Java压缩zip文件:

    1. 压缩单个文件和多个文件,不包含文件夹;
    2. 怎样用Java将文件追加到zip文件中。

    测试类:

    /**
     * @FileName:ZipTest.java
     * @Description: TODO
     * @Copyright: All rights Reserved, Designed By [meter] Copyright(C) 2010-2018
     * @Company: 
     * @author:meter
     * @version: V1.0 
     * @Create:2018年5月4日 上午9:50:22
     *
     * Modification  History:
     * Date         Author        Version        Discription
     * -----------------------------------------------------------------------------------
     * 2018年5月4日      meter          1.0             1.0
     * Why & What is modified: <修改原因描述>
     */
    package org.meter.demo;
    
    import java.io.File;
    import java.io.FileFilter;
    import java.text.SimpleDateFormat;
    import java.util.ArrayList;
    import java.util.Date;
    import java.util.List;
    import java.util.Scanner;
    import java.util.concurrent.LinkedBlockingQueue;
    import java.util.concurrent.ThreadPoolExecutor;
    import java.util.concurrent.TimeUnit;
    
    import org.meter.zip.ZipTools;
    
    
    /**      
     * @项目名称:meter   
     * @类名称:ZipTest   
     * @类描述:   
     * @创建人:meter   
     * @创建时间:2018年5月4日 上午9:50:22   
     * @版权:Copyright@2018.All Rights Reserved    
     * @version v1.0      
     */
    public class ZipTest {
    	private static SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddhhmmssSSSS");
    	private static ThreadPoolExecutor workerPool=new ThreadPoolExecutor(20,
    				25,
    				1,
    				TimeUnit.SECONDS, new LinkedBlockingQueue<Runnable>(15),
    				new ThreadPoolExecutor.CallerRunsPolicy());
    		
    	private static void test(String path,Long size) throws Exception{
    		workerPool.allowCoreThreadTimeOut(true);// 设置超时时关闭线程
    		File dir=new File(path);
    		if(!dir.exists()){
    			System.out.println("当前路径:"+path+"不存在");
    			return;
    		}
    		System.out.println("当前路径:"+dir.getAbsolutePath());
    		File[] files =dir.listFiles(new FileFilter(){
    			@Override
    			public boolean accept(File pathname) {
    				if(pathname.getName().toLowerCase().endsWith(".zip")&&pathname.getName().toLowerCase().contains("sca_2018")){
    					return true;
    				}
    				return false;
    			}
    		});
    		long fileSize=0;
    		List<File> fileList=new ArrayList<File>();
    		String zipName="sca_"+sdf.format(new Date())+".zip";
    		int flag=files.length;
    		for(File file:files){
    			System.out.println("读取到文件:"+file.getName());
    			fileSize+=file.length();
    			fileList.add(file);
    			flag--;
    			if(fileSize>=size){
    				workerPool.execute(new InnerWorker(fileList,zipName));
    				fileSize=0;
    				fileList=new ArrayList<File>();
    				zipName="sca_"+sdf.format(new Date())+".zip";
    			} else if(flag<=0){
    				ZipTools.zipFiles(fileList,new File(zipName));
    			}
    		}
    	}
    
        
        private static class InnerWorker implements Runnable{
        	private List<File> fileList;
        	private String zipName;
        	public InnerWorker(List<File> fileList,String zipName){
        		this.fileList=fileList;
        		this.zipName=zipName;
        	}
        	
    		@Override
    		public void run() {
    			try {
    				ZipTools.zipFiles(fileList,new File(zipName));
    				System.out.println("压缩文件["+zipName+"]成功。");
    			} catch (Exception e) {
    				e.printStackTrace();
    				System.out.println("压缩失败文件:"+zipName);
    			}
    			
    		}
        	
        }
    	/** @创建日期:2018年5月4日 上午9:50:22
    	 * @作者: meter
    	 * @描述:TODO
    	 * @Title: main
    	 * @param args   
    	 * @throws Exception 
    	 */
    	public static void main(String[] args) throws Exception {
    		System.out.println("Please input the path:");
    		Scanner input = new Scanner(System.in);
    		String path=input.nextLine();
    		test(path,2147483648L);
    	}
    
    }
    

    工具类:

    /**
     * @FileName:ZipTools.java
     * @Description: TODO
     * @Copyright: All rights Reserved, Designed By [meter] Copyright(C) 2010-2018
     * @Company: 米特娱乐乐园
     * @author:meter
     * @version: V1.0 
     * @Create:2018年5月4日 上午10:25:09
     *
     * Modification  History:
     * Date         Author        Version        Discription
     * -----------------------------------------------------------------------------------
     * 2018年5月4日      meter          1.0             1.0
     * Why & What is modified: <修改原因描述>
     */
    package org.meter.zip;
    
    import java.io.BufferedInputStream;
    import java.io.BufferedOutputStream;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.OutputStream;
    import java.nio.charset.Charset;
    import java.util.Enumeration;
    import java.util.List;
    import java.util.zip.ZipEntry;
    import java.util.zip.ZipFile;
    import java.util.zip.ZipOutputStream;
    
    
    
    /**
     * @项目名称:meter
     * @类名称:ZipTools 
     * @类描述:采用zip压缩文件
     * @创建人:meter
     * @创建时间:2018年5月4日 上午10:25:09
     * @版权:Copyright@2018.All Rights Reserved
     * @version v1.0
     */
    public class ZipTools {
    	/**
    	 * @创建日期:2018年5月4日 下午1:37:22
    	 * @作者: meter
    	 * @描述:压缩多个文件的情况
    	 * @Title: zip
    	 * @param fileList
    	 * @param zipFile
    	 * @throws Exception
    	 */
    	public static void zipFiles(List<File> fileList,File zipFile) throws Exception{
    		System.out.println("zipFiles待压缩文件:"+zipFile.getAbsolutePath());
    		if(fileList != null){
    			if(zipFile.exists()){//压缩文件已经存在,则只能单个添加
    				for(File file:fileList){
    					zip(zipFile,file);
    				}
    			}else{//不存在则新建
    				// 创建zip输出流
    				ZipOutputStream zipOutStream = new ZipOutputStream(new FileOutputStream(zipFile), Charset.forName("UTF-8"));
    				// 创建缓冲输出流
    				BufferedOutputStream bufferOutStream = new BufferedOutputStream(zipOutStream);
    				for(File file:fileList){
    					zipFile(file,zipOutStream,bufferOutStream);
    				}
    				//最后关闭输出流
    				bufferOutStream.close();
    				zipOutStream.close();
    			}
    			
    		}
    	}
    	/**
    	 * @创建日期:2018年5月4日 下午1:44:55
    	 * @作者: meter
    	 * @描述:执行文件压缩
    	 * @Title: zipFile
    	 * @param file
    	 * @param zipOutStream
    	 * @param bufferOutStream
    	 * @throws IOException
    	 */
    	private static void zipFile(File file,ZipOutputStream zipOutStream,BufferedOutputStream bufferOutStream) throws IOException{
    		// 创建压缩文件实体
    		ZipEntry entry = new ZipEntry(file.getName());
    		// 添加实体
    		zipOutStream.putNextEntry(entry);
    		// 创建输入流
    		BufferedInputStream bufferInputStream = new BufferedInputStream(new FileInputStream(file));
    		write(bufferInputStream, bufferOutStream);
    		zipOutStream.closeEntry();
    	}
    	/**
    	 * @创建日期:2018年5月4日 下午1:37:01
    	 * @作者: meter
    	 * @描述:压缩单个文件
    	 * @Title: zip
    	 * @param zipFile
    	 * @param sourceFile
    	 * @throws Exception
    	 */
    	public static void zip(File zipFile, File sourceFile) throws Exception {
    		System.out.println("待压缩文件:"+zipFile.getAbsolutePath());
    		if (zipFile.exists()) {// 添加到已经存在的压缩文件中
    			
    			File tempFile=new File(zipFile.getAbsolutePath()+".tmp");
    			// 创建zip输出流
    			ZipOutputStream zipOutStream = new ZipOutputStream(new FileOutputStream(tempFile), Charset.forName("UTF-8"));
    			// 创建缓冲输出流
    			BufferedOutputStream bufferOutStream = new BufferedOutputStream(zipOutStream);
    			ZipFile zipOutFile = new ZipFile(zipFile);
    			
    			Enumeration<? extends ZipEntry> entries = zipOutFile.entries();
    			while (entries.hasMoreElements()) {
    				ZipEntry entry = entries.nextElement();
    				System.out.println("copy: " + entry.getName());
    				zipOutStream.putNextEntry(entry);
    				if (!entry.isDirectory()) {
    					write(zipOutFile.getInputStream(entry), bufferOutStream);
    				}
    				zipOutStream.closeEntry();
    			}
    			zipOutFile.close();//记得关闭zip文件,否则后面无法删除原始文件
    			ZipEntry entry = new ZipEntry(sourceFile.getName());
    			// 添加实体
    			zipOutStream.putNextEntry(entry);
    			BufferedInputStream bufferInputStream = new BufferedInputStream(new FileInputStream(sourceFile));
    			write(bufferInputStream, bufferOutStream);
    			//最后关闭输出流
    			bufferOutStream.close();
    			zipOutStream.close();
    			boolean flag=zipFile.delete();
    			if(flag){
    			tempFile.renameTo(zipFile);
    			}else{
    				System.out.println("删除文件失败。");
    			}
    		} else {// 新创建压缩文件
    			// 创建zip输出流
    			ZipOutputStream zipOutStream = new ZipOutputStream(new FileOutputStream(zipFile), Charset.forName("UTF-8"));
    			// 创建缓冲输出流
    			BufferedOutputStream bufferOutStream = new BufferedOutputStream(zipOutStream);
    			// 创建压缩文件实体
    			ZipEntry entry = new ZipEntry(sourceFile.getName());
    			// 添加实体
    			zipOutStream.putNextEntry(entry);
    			// 创建输入流
    			BufferedInputStream bufferInputStream = new BufferedInputStream(new FileInputStream(sourceFile));
    			write(bufferInputStream, bufferOutStream);
    			//最后关闭输出流
    			bufferOutStream.close();
    			zipOutStream.close();
    		}
    		
    	}
    	/**
    	 * @创建日期:2018年5月4日 下午2:09:37
    	 * @作者: meter
    	 * @描述:读写zip文件
    	 * @Title: write
    	 * @param inputStream
    	 * @param outStream
    	 * @throws IOException
    	 */
        private static void write(InputStream inputStream,OutputStream outStream) throws IOException{
        	byte[] data=new byte[4096];
        	int length=0;
        	while((length=inputStream.read(data)) != -1){
        		outStream.write(data,0,length);
        	}
        	outStream.flush();//刷新输出流
        	inputStream.close();//关闭输入流
        }
        
        /**
         * @创建日期:2018年5月4日 下午3:07:55
         * @作者: meter
         * @描述:压缩指定目录下所有文件
         * @Title: zipDirectory
         * @param dirFile
         * @param zipFile
         * @throws IOException 
         */
        public static void zipDirectory(File dirFile,File zipFile) throws IOException{
        	if(dirFile != null && dirFile.isDirectory()){
        		if(zipFile == null){
        			zipFile=new File(dirFile.getAbsolutePath()+".zip");
        		}
        		String dirName=dirFile.getName()+File.separator;
        		// 创建zip输出流
    			ZipOutputStream zipOutStream = new ZipOutputStream(new FileOutputStream(zipFile), Charset.forName("UTF-8"));
    			// 创建缓冲输出流
    			BufferedOutputStream bufferOutStream = new BufferedOutputStream(zipOutStream);
    			dealDirFile( dirFile,dirName,bufferOutStream,zipOutStream);
    			
    			//最后关闭输出流
    			bufferOutStream.close();
    			zipOutStream.close();
        	}else{
        		System.out.println("["+dirFile.getName()+"]不是一个文件夹,或者不存在。");
        	}
        }
        /**
         * @创建日期:2018年5月4日 下午4:38:46
         * @作者: meter
         * @描述:处理目录文件
         * @Title: dealDirFile
         * @param dirFile
         * @param parentDir
         * @param bufferOutStream
         * @param zipOutStream
         * @throws IOException
         */
        private static void dealDirFile(File dirFile,String parentDir, BufferedOutputStream bufferOutStream, ZipOutputStream zipOutStream) throws IOException{
        	File[] fileList=dirFile.listFiles();
        	for(File file:fileList){
        		if(file.isFile()){
        			// 创建压缩文件实体
        			ZipEntry entry = new ZipEntry(parentDir+file.getName());
        			// 添加实体
        			zipOutStream.putNextEntry(entry);
        			// 创建输入流
        			BufferedInputStream bufferInputStream = new BufferedInputStream(new FileInputStream(file));
        			write(bufferInputStream, bufferOutStream);
        		}else{
        			dealDirFile(file,  parentDir+file.getName()+File.separator,  bufferOutStream,  zipOutStream);
        		}
        	}
        }
        /**
         * @创建日期:2018年5月4日 下午3:22:11
         * @作者: meter
         * @描述:重载zipDirectory
         * @Title: zipDirectory
         * @param dirPath
         * @param zipPath
         * @throws IOException
         */
        public static void zipDirectory(String dirPath,String zipPath) throws IOException{
        	if(zipPath==null || "".equals(zipPath)){
        		zipDirectory(new File(dirPath),null);
        	}else{
        		zipDirectory(new File(dirPath),new File(zipPath));
        	}
        }
       //------------------------------------------------米特华丽的分割线----------------------------------------------------------------------------------------
       
        /**
         * @创建日期:2018年5月4日 下午4:00:41
         * @作者: meter
         * @描述:解压文件
         * @Title: unzip
         * @param zipFile
         * @param destDir
         * @throws IOException 
         */
    	public static void unzip(File zipFile, File destDir) throws IOException {
    		ZipFile zipOutFile = new ZipFile(zipFile,Charset.forName("gbk"));
    		Enumeration<? extends ZipEntry> entries = zipOutFile.entries();
    		while (entries.hasMoreElements()) {
    			ZipEntry entry = entries.nextElement();
    			if(entry.isDirectory()){
    				File tempFile = new File(destDir.getAbsolutePath()+File.separator+entry.getName());
    				if (!tempFile.exists()) {
    					tempFile.mkdirs();
    				}
    			}else{
    				File tempFile=new File(destDir.getAbsolutePath()+File.separator+entry.getName());
    				checkParentDir(tempFile);
    				FileOutputStream fileOutStream=new FileOutputStream(tempFile);
    				BufferedOutputStream bufferOutStream = new BufferedOutputStream(fileOutStream);
    				write(zipOutFile.getInputStream(entry),bufferOutStream);
    				bufferOutStream.close();
    				fileOutStream.close();
    			}
    		}
    		zipOutFile.close();//记得关闭zip文件
    	}
    	
    	/**
    	 * @创建日期:2018年5月4日 下午4:37:41
    	 * @作者: meter
    	 * @描述:验证父目录是否存在,否则创建
    	 * @Title: checkParentDir
    	 * @param file
    	 */
    	private static void checkParentDir(File file){
    		if(!file.getParentFile().exists()){
    			file.getParentFile().mkdirs();
    		}
    	}
    	
    }
    


    展开全文
  • linux解压zip文件

    万次阅读 2019-07-11 21:06:06
    一,linux解压zip文件,命令:unzip 如果没有该命令,可先安装,命令为:yum -y install unzip

    一,linux解压zip文件,命令:unzip 如果没有该命令,可先安装,命令为:yum -y install unzip

    补充,直接编辑zip压缩文件报错(zip#write) sorry, your system doesn't appear to have the zip pgm,

    说明没有zip命令,安装命令:yum -y install zip。

    补充:

    如果不能访问外网上面的方法就不行,可以通过rpm方式安装,

    可以通过  http://www.rpmfind.net/linux/rpm2html/search.php?query=zip(x86-64)  来搜索zip的rpm包。

    根据你的操作系统来选择你相应的rpm包,可以放在/usr/local/src下,

    运行如下命令安装

    rpm -ivh zip-3.0-11.el7.x86_64.rpm,

    如果你的系统没安装unzip还会提示你安装zip依赖于unzip,可以加--force (强制) 和--nodeps(不查找依赖关系)。这样就不会查找依赖。rpm -ivh zip-3.0-11.el7.x86_64.rpm --force --nodeps。

    希望对大家有用!!内容有不合理的地方欢迎指正,谢谢!!

     

     

    展开全文
  • zip文件格式

    千次阅读 2017-10-27 17:14:39
    zip文件格式。整体结构简单归纳总结下,zip文件格式由文件数据区、中央目录结构,中央目录结束标志组成。其中中央目录结束节又有一个字段保存了中央目录结构的偏移。
  • Djanog 后台接收zip文件并将文件解压到指定文件夹 Django框架搭建的后台,接收来自前端传递的zip文件,需要将接收到的文件解压到指定文件夹。 import os import shutil import zipfile # 文件 file = request.FILES...
  • 首先给大家演示下 zip 文件的解压方法。 提前读取,避免把压缩包自己加上去。 然后给大家看下 zip 文件...Python 技术篇-用zipfile库进行zip文件的压缩与解压实例演示,python压缩本地文件夹为zip文件并保留目录结构。
  • Python实战-暴力破解zip文件解压密码

    万次阅读 多人点赞 2018-08-24 19:31:03
    使用Python暴力解压传统加密的ZIP文件
  • MD5文件如何解密zip文件

    千次阅读 2019-08-15 09:39:17
    双击zip文件解密时提示需要输入密码,用文本编辑器打开MD5文件后,把里面的内容拷贝到解压的提示框中,点击确认即可
  • python 暴力破解zip文件

    千次阅读 2018-11-14 22:32:16
    python 破解zip文件 参考于:《python绝技:运用python成为顶级黑客》 运用python破解zip文件主要是zipfile模块和extractall方法 zipfile模块可以实现对zip文件的创建,解压,和获取解压后文件信息 首先我们新建一个...
  • Linux下zip文件解压乱码

    万次阅读 2020-09-14 14:53:45
    Linux下zip文件解压乱码 #这是zip格式的缺陷,zip文件格式中没有字段标志出文件名的编码格式。Windows下生成的zip文件中的编码是GBK/GB2312等,而linux下的默认编码格式为UTF-8,所以才会出现乱码。 #解决办法一...
  • PHP安装zip扩展,ZipArchive解压zip文件

    千次阅读 2020-04-16 10:31:26
    PHP安装zip扩展,ZipArchive解压zip文件 打印phpinfo();查看是否已经安装zip扩展及是否开启,未安装或开启按照如下方法操作 http://pecl.php.net/package/zip下载相应php版本的Windows版本zip包。 下载解压后...
  • java上传zip文件

    千次阅读 2020-03-10 16:44:32
    文件上传大家都是知道怎么写的,前几天用到了上传zip文件的方法,在这里记录一下,希望可以帮助到大家! /**** * 上传解析zip * @param file */ @RequestMapping("uploadZip") public void uploadZip...
  • Java8 Files 解压zip文件 不需要更多解释,全在注释里了。 /** * 解压Zip * 代码比较简单,运行后通过打印日志能有更深的理解 */ public void unZip() { try { // 此代码是在SpringBoot项目中摘过来的。...
  • Java直接读取zip文件有两种方法: 通过zip文件的流直接读取文件 public static void readZipFile(ZipInputStream zipInputStream) throws IOException { while((zipInputStream.getNextEntry())!=null){ ...
  • Python操作Zip文件

    千次阅读 2018-12-25 11:31:26
    Python操作Zip文件 需要使用到zipfile模块 读取Zip文件 随便一个zip文件,我这里用了bb.zip,就是一个文件夹bb,里面有个文件aa.txt。 import zipfile # 默认模式r,读 azip = zipfile.ZipFile('bb.zip') # ['bb/', ...
  • zip文件格式分析

    千次阅读 2015-06-24 19:56:08
    zip文件格式分析
  • Centos7解压Zip文件

    千次阅读 2018-10-26 17:08:08
    一、安装支持ZIP的解压工具 unzip 和 压缩工具 zip : yum install -y unzip zip 二、解压zip文件 unzip 文件名.zip 三、压缩一个zip文件 zip 文件名.zip 文件夹名称或文件名称...
  • 多文件导出为ZIP文件

    千次阅读 2016-11-07 09:08:41
    即上次单文件导出为zip压缩包文件,增加多文件导出到同一zip文件中,接口调用,获取图片byte字节数组后,保存为图片文件,存入zip文件中。 /** * 压缩多个文件到一个zip压缩包中 * @description : * @date 2016-...
  • Java获取zip文件

    千次阅读 2019-11-23 11:04:14
    生成zip文件保存到磁盘,返回时读取文件内容 需要考虑文件的生成策略,防止并发情况下文件冲突;文件的删除策略,无用文件及时删除,避免磁盘空间的浪费。 保存到内存中,返回时从内存中读取二进制内容 以流的...
  • Java解压zip文件

    千次阅读 2019-06-06 15:26:42
    Java解压zip文件前提代码pom.xmlZipUtil.java运行 前提 zip文件存在:D:\tmp\mytest.zip。下面将以解压“D:\tmp\mytest.zip”到目录“D:\tmp”为例进行示例。 代码 pom.xml <!-- 日志 --> <dependency> ...
  • java 直接读取zip文件和文件内容

    万次阅读 2017-12-29 10:06:00
    不解压zip文件,直接读取zip包内的文件夹以及文件内容
  • ZIP文件格式分析

    万次阅读 多人点赞 2016-06-12 14:55:41
    官方文档https://pkware.cachefly.net/webdocs/APPNOTE/APPNOTE-6.2.0.txt格式说明在官方文档中给出的ZIP格式如下: Overall .ZIP file format: [local file header 1] [file data 1] [data descriptor 1] . . ...
  • java实现对rar文件和zip文件的解压缩

    万次阅读 2017-07-12 16:47:53
    java实现对rar文件和zip文件的解压缩 一.对zip文件的解压缩 1.1 使用ZIP4J实现 zip4j官方说明: Create, Add, Extract, Update, Remove files from a Zip file 针对ZIP压缩文件创建、添加、抽出、更新和...
  • Zip文件压缩与解压

    千次阅读 2017-05-08 17:54:06
    Java zip文件压缩与解压
  • 从.zip文件中读取数据

    千次阅读 热门讨论 2020-10-23 09:38:20
    Python 能够直接读取 zip 文件中的数据。我们现在需要实现这样一个小任务:直接读取一个 zip 文件,获取里面包含的文件列表以及每个文件的大小。 Python 的 zipfile 模块可以轻松地帮助我们解决这个任务: import ...
  • ZIP文件伪加密

    千次阅读 2018-08-04 15:53:55
    【重点】一般错误的zip文件,会改动的地方: 1. 3个头文件标记。 2. 解压的pkware版本所在的标志位。 3. 压缩方式的标志位。 4. 全局方式位标记(有无加密)(其中如00 00这样的前面的末位是偶数的代表不加密,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 701,409
精华内容 280,563
关键字:

zip文件