精华内容
下载资源
问答
  • import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.util.Enumeration; import java.
    package filetest;
    
    import java.io.File;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.OutputStream;
    import java.util.Enumeration;
    import java.util.zip.ZipException;
    
    import javax.swing.JFileChooser;
    
    import org.apache.tools.zip.ZipEntry;
    import org.apache.tools.zip.ZipFile;
    
    public class FileOperation {
    
    	private JFileChooser fChooser;
    
    	/**
    	 * 选择目录或文件
    	 * 
    	 * @return
    	 */
    	public File getChooseFile() {
    		fChooser = new JFileChooser("F:\\资料文档\\视频资料\\黑马程序员\\Java基础视频");//默认路径
    		fChooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);// 可选文件和目录
    		fChooser.setDialogTitle("Please choose a dictionary or a file~");
    		int result = fChooser.showOpenDialog(fChooser);
    		if (JFileChooser.APPROVE_OPTION == result) {// “确定”
    			return fChooser.getSelectedFile();
    		}
    		return null;
    	}
    
    	public static void main(String[] args) {
    		FileOperation fo = new FileOperation();
    		File file = fo.getChooseFile();
    		if (file != null)
    			fo.unZipFile(file);
    		System.exit(0);
    	}
    
    	/**
    	 * 解压目录/文件
    	 * 
    	 * @param file
    	 * @throws IOException
    	 * @throws ZipException
    	 */
    	public void unZipFile(File file) {
    		if (file.isDirectory()) {// 目录
    			File[] files = file.listFiles();
    			for (File tempFile : files) {
    				unZipFile(tempFile);
    			}
    		} else {// 文件
    			try {
    				if (!file.getName().endsWith(".zip"))
    					return;
    				ZipFile zipFile = new ZipFile(file.getPath(), "GBK");
    				Enumeration entries = zipFile.getEntries();
    				String path = file.getParent(); // 获取相对路径
    				while (entries.hasMoreElements()) {
    					ZipEntry zipEntry = (ZipEntry) entries.nextElement();
    					String fileName = zipEntry.getName();
    					File newFile = new File(path + "/" + fileName);
    					createFile(newFile, zipFile, zipEntry);
    				}
    				zipFile.close();//关闭压缩文件,否则不能删除压缩包
    				file.delete();//删除压缩包
    			} catch (Exception e) {
    				e.printStackTrace();
    			}
    		}
    	}
    
    	/**
    	 * 解压压缩包里每个文件
    	 * @param file
    	 * @param zipFile
    	 * @param zipEntry
    	 */
    	public void createFile(File file, ZipFile zipFile, ZipEntry zipEntry) {
    		if (file.isDirectory()) {
    			if (!file.exists()) {
    				file.mkdir();
    			}
    		} else {
    			try {
    				InputStream is = null;
    				OutputStream os = null;
    				is = zipFile.getInputStream(zipEntry);
    				os = new FileOutputStream(file);
    				byte[] bytes = new byte[1024];
    				int len = 0;
    				while ((len = is.read(bytes, 0, bytes.length)) != -1) {
    					os.write(bytes, 0, len);
    				}
    				is.close();
    				os.close();
    			} catch (Exception e) {
    				e.printStackTrace();
    			}
    		}
    	}
    }
    

    展开全文
  • 本来想写一个界面批量写注释 批量给压缩包添加和删除文件,最近没时间了m,大概写了一下工具类,还没有简化,先记录下package com.bdkjzx.winrar.util;import java.io.File; import java.io.IOException; import java...

    本来想写一个界面批量写注释 批量给压缩包添加和删除文件,最近没时间了m,大概写了一下工具类,还没有简化,先记录下

    package com.bdkjzx.winrar.util;
    
    import java.io.File;
    import java.io.IOException;
    import java.util.ArrayList;
    import java.util.List;
    
    public class BatUtil {
        private static List<File> fileList = new ArrayList<File>();
        private static Runtime cmd = Runtime.getRuntime();
        static String suffix = ".rar";
        private static String winrarPath="D:/WinRAR/WinRAR.exe";
        private static String isIbak=" -ibck ";//是否后台运行
        private static String rate="-m1"; //压缩比率 -m0   存储      添加到压缩文件时不压缩文件。-m1   最快    -m2   较快      -m3   标准    -m4   较好    -m5   最好  
    
        public static void main(String[] args) {
            String commandStr = "";
            String filePath = "F:/testwinrar2";
    
            try {
                File root = new File(filePath);
                extractFiles(root);
    //          compressFiles(root);
    
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    
        static List<File> getFiles(File root) {
            File[] files = root.listFiles();
            for (File childFile : files) {
                if (childFile.isDirectory()) {
                    getFiles(childFile);
                } else {
                    if (childFile.getName().endsWith(suffix)) {
                        fileList.add(childFile);
                    }
                }
            }
            return fileList;
        }
    
        /**
         * 批量添加文件
         * 
         * @param root
         * @return
         */
        static boolean addFiles(File root) {
    
            File[] files = root.listFiles();
            for (File childFile : files) {
                if (childFile.isDirectory()) {
                    getFiles(childFile);
                } else {
                    if (childFile.getName().endsWith(suffix)) {
                        fileList.add(childFile);
                    }
                }
            }
            return false;
    
        }
    
        /**
         * 批量解压文件
         * 
         * @param root
         * @return
         */
        static void extractFiles(File root) {
            File[] files = root.listFiles();
            String suffix = ".rar";
            boolean flag = false;
            try {
                for (File childFile : files) {
                    if (childFile.isDirectory()) {
                        extractFiles(childFile);
                    } else {
                        if (childFile.getName().endsWith(suffix)) {
                            String fPath = childFile.getAbsolutePath();
                            String path = childFile.getAbsolutePath()
                                    .substring(0, childFile.getAbsolutePath().lastIndexOf(".")).replace("/", "/");
                            String commandStr = " cmd.exe /c mkdir " + path;
                            cmd.exec(commandStr);
                            commandStr = winrarPath+"  x  -y -ep1 -dr "+isIbak+ fPath + " " + path;
                            System.out.println(commandStr);
                            cmd.exec(commandStr);
                        }
                    }
                }
    
            } catch (IOException e) {
    
                e.printStackTrace();
            }
    
        }
    
        /**
         * 批量压缩文件
         * 
         * @param root
         * @return
         */
        static boolean compressFiles(File root) {
            File[] files = root.listFiles();
            try {
    
                for (File childFile : files) {
                    if (childFile.isDirectory()) {
                        String fPath = childFile.getAbsolutePath();
                        String commandStr = winrarPath+"  a -s -ep1  -df -y "+isIbak + fPath + ".rar  " + fPath;
                        System.out.println(commandStr);
                        cmd.exec(commandStr);
                    } else {
                        if(!childFile.getName().endsWith(suffix)){
                            String fPath = childFile.getAbsolutePath();
                            String path = childFile.getAbsolutePath()
                                    .substring(0, childFile.getAbsolutePath().lastIndexOf(".")).replace("/", "/");
                            String commandStr = winrarPath+"  a  -s -ep1 -df -y "+rate+" " +isIbak+ path + ".rar  " + fPath;
                            System.out.println(commandStr);
                            cmd.exec(commandStr);
                        }
                    }
                }
            } catch (Exception e) {
    
            }
            return false;
    
        }
    
    }
    展开全文
  • Java 解压zip压缩包

    2018-02-07 15:29:00
    因为最近项目需要批量上传文件,而这里的批量就是将文件压缩在了一个zip包里,然后读取文件进行解析...3.第三个方法是 删除删除文件夹内所有文件和子目录 的方法。 因为我们一般处理解析完数据之后需要删除上传的...

    因为最近项目需要批量上传文件,而这里的批量就是将文件压缩在了一个zip包里,然后读取文件进行解析文件里的内容。

    因此需要先对上传的zip包进行解压。以下直接提供代码供参考:

    1.第一个方法是用于解压zip压缩包的方法。

    2.第二个方法是 删除该文件夹以及子目录和子目录文件的方法。

    3.第三个方法是 删除 删除文件夹内所有文件和子目录 的方法。

    因为我们一般处理解析完数据之后需要删除上传的文件,以减小服务器的压力,所以提供第二、三方法以供参考。

    我这里的解压zip包的方法返回的是解压后所得到的文件List,大家也可以根据需要返回自己需要的结果,或者不返回都行。

    如果大家有什么更好的方法欢迎留言,请各位多多指教!

      1 package com.forms.oa.weekreport.batchimport.service;
      2 
      3 import java.io.File;
      4 import java.io.FileOutputStream;
      5 import java.io.IOException;
      6 import java.io.InputStream;
      7 import java.util.ArrayList;
      8 import java.util.Enumeration;
      9 import java.util.List;
     10 
     11 import org.apache.tools.zip.ZipEntry;
     12 import org.apache.tools.zip.ZipFile;
     13 
     14 public class FileUtil {
     15     
     16     /**
     17      * 解压zip压缩包并返回解压之后所得到的文件List
     18      *  <br>
     19      * @param zipPath
     20      * @return
     21      * List<File>
     22      */
     23     public static List<File> UnZipFile(String zipPath) {
     24         File file = new File(zipPath);
     25         //设置 压缩包所在的目录下与压缩包同名文件夹 为 解压后的文件所在的目录 
     26         String unZipPath=zipPath.substring(0, zipPath.lastIndexOf("."));   
     27         ZipFile zipFile = null;
     28         List<File> fileList=new ArrayList<File>();
     29         try {
     30             //设置编码格式
     31             zipFile = new ZipFile(file,"GBK");
     32         } catch (IOException e1) {
     33             e1.printStackTrace();
     34         }
     35         Enumeration e = zipFile.getEntries(); 
     36         while(e.hasMoreElements()) { 
     37             ZipEntry zipEntry = (ZipEntry)e.nextElement(); 
     38             if(zipEntry.isDirectory()) { 
     39                 String name = zipEntry.getName(); 
     40                 name = name.substring(0,name.length()-1); 
     41                 File f = new File(unZipPath+File.separator + name); 
     42                 f.mkdirs(); 
     43             } else { 
     44                 File f = new File(unZipPath +File.separator+ zipEntry.getName()); 
     45                 fileList.add(f);
     46                 f.getParentFile().mkdirs(); 
     47                 try {
     48                     f.createNewFile();
     49                     InputStream is = zipFile.getInputStream(zipEntry); 
     50                     FileOutputStream fos = new FileOutputStream(f); 
     51                     int length = 0; 
     52                     byte[] b = new byte[1024]; 
     53                     while((length=is.read(b, 0, 1024))!=-1) { 
     54                         fos.write(b, 0, length); 
     55                     } 
     56                     is.close(); 
     57                     fos.close(); 
     58                 } catch (IOException e1) {
     59                     e1.printStackTrace();
     60                 } 
     61             } 
     62         } 
     63         if (zipFile != null) { 
     64             try {
     65                 zipFile.close();
     66             } catch (IOException e1) {
     67                 e1.printStackTrace();
     68             } 
     69         } 
     70         file.delete();//解压完以后将压缩包删除
     71         return fileList;  //返回解压后所得到的文件list
     72     }
     73     
     74     /**
     75      * 删除该文件夹以及子目录和子目录文件 <br>
     76      * @param folderPath void
     77      */
     78     public static void delFolder(String folderPath) {
     79         try {
     80             delAllFile(folderPath); //删除完里面所有内容  
     81             File path = new File(folderPath);
     82             path.delete(); //删除空文件夹  
     83         } catch (Exception e) {
     84             e.printStackTrace();
     85         }
     86     }
     87 
     88     /**
     89      * 删除文件夹内所有文件和子目录 <br>
     90      * @param path
     91      * @return boolean
     92      */
     93     public static boolean delAllFile(String path) {
     94         boolean flag = false;
     95         File file = new File(path);
     96         if (!file.exists()) {
     97             return flag;
     98         }
     99         if (!file.isDirectory()) {
    100             return flag;
    101         }
    102         String[] tempList = file.list();
    103         File temp = null;
    104         for (int i = 0; i < tempList.length; i++) {
    105             if (path.endsWith(File.separator)) {
    106                 temp = new File(path + tempList[i]);
    107             } else {
    108                 temp = new File(path + File.separator + tempList[i]);
    109             }
    110             if (temp.isFile()) {
    111                 temp.delete();
    112             }
    113             if (temp.isDirectory()) {
    114                 delAllFile(path + File.separator + tempList[i]);//先删除文件夹里面的文件  
    115                 delFolder(path + File.separator + tempList[i]);//再删除空文件夹  
    116                 flag = true;
    117             }
    118         }
    119         return flag;
    120     }
    121 
    122 
    123 }

     

    转载于:https://www.cnblogs.com/sunshine6/p/8426908.html

    展开全文
  • java代码实现压缩包的解压

    千次阅读 2018-07-26 08:27:02
    4、解压后的文件与已有文件比较:压缩包中没有的不修改,压缩包中有的,已有的文件中没有则新建,若两个都有,则把已有的文件删除,只留压缩包中的。 public class Test01 {  public void unZip(String zipf...

    实现解压的要求:

    1、判断压缩包是否存在

    2、判断是不是压缩包格式

    3、如果解压后的文件名字与已有的文件名字相同,要与已有的文件进行比较

    4、解压后的文件与已有文件比较:压缩包中没有的不修改,压缩包中有的,已有的文件中没有则新建,若两个都有,则把已有的文件删除,只留压缩包中的。

    public class Test01 {
        public void unZip(String zipfile) {

            // 检查是否是zip文件,并判断文件是否存在

            checkFileName(zipfile);

            File zfile = new File(zipfile);

            // 获取待解压文件的父路径

            String Parent = zfile.getParent() + "/";

            Charset charset = Charset.forName("utf-8");// 默认UTF-8

            ZipInputStream zis = null;
            
            try {
                zis = new ZipInputStream(new FileInputStream(zipfile), charset);
            } catch (FileNotFoundException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } // 输入源zip路径

            ZipEntry entry = null;

            BufferedOutputStream bos = null;

            try {
                while ((entry = zis.getNextEntry()) != null) {

                    if (entry.isDirectory()) {
                        File filePath = new File(Parent + entry.getName());
                        // 如果目录不存在,则创建

                        if (!filePath.exists()) {

                            filePath.mkdirs();

                        }

                    } else {

                        File filePath = new File(Parent + entry.getName());

                        if (filePath.exists()) { // 如果文件存在,那么将文件删除
                            filePath.delete();
                        }

                        FileOutputStream fos = new FileOutputStream(Parent + entry.getName());

                        bos = new BufferedOutputStream(fos);

                        byte buf[] = new byte[1024];

                        int len;

                        while ((len = zis.read(buf)) != -1) {

                            bos.write(buf, 0, len);

                        }

                        zis.closeEntry();

                        // 关闭的时候会刷新

                        bos.close();
                    }

                }
            } catch (FileNotFoundException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            try {
                zis.close();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }

        private void checkFileName(String name) {

            // 文件是否存在

            if (!new File(name).exists()) {

                System.err.println("要解压的文件不存在!");

                System.exit(1);

            }

            // 判断是否是zip文件

            int index = name.lastIndexOf(".");

            String str = name.substring(index + 1);

            if (!"zip".equalsIgnoreCase(str) ) {

                System.err.println("不是zip,无法解压!");

                System.exit(1);

            }

        }

    }

    展开全文
  • import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.Fi...
  • 为防止旧文件过多撑爆服务器,需要定期删除这些生成的文件。 在实现中定义3分钟文件过期,需要被删除文件地址缓存服务类 此类将文件地址缓存起来,key=uuid,value=文件绝对地址。同时定义一个阻塞队列,保存文件...
  • 本来是打算在使用common-compress解压完压缩包后,删除源文件目录的,于是写了下面这个迭代删除文件的方法。 public static boolean deleteDir(File dir) {  if (dir.isDirectory()) {  String[] children = dir....
  • Java从网络取得文件 1个目标文件 简单 Java压缩包中提取文件 1个目标文件 简单 Java存储与读取对象 1个目标文件 如题 Java调色板面板源代码 1个目标文件 摘要:Java源码,窗体界面,调色板 使用Java语言编写的一款...
  • Java从网络取得文件 1个目标文件 简单 Java压缩包中提取文件 1个目标文件 简单 Java存储与读取对象 1个目标文件 如题 Java调色板面板源代码 1个目标文件 摘要:Java源码,窗体界面,调色板 使用Java语言编写的一款...
  •  在做打压缩包的时候打完包之后,应该删除目录的临时文件,但是我在方法的最后调用删除一直返回false,删除不了,直到自己怀疑人生\ 解决方案:  定时删除:  但是存在问题,删除时间和下载时间冲突  在方法打包之前先...
  • 并按照省将文件成一个大文件,代码实现功能:按照gz压缩包的路径格式解压文件,最后将文件合并成按照省份名称排放的大文件,项目用log4j记录日志,用Java定时器实现定时解压合并,并且删除解压出来的小文件,...
  • 压缩包文件名(全路径)、需要压缩的一个或多个文件名(全路径)和是否删除原始文件标志(可选是否删除) 话不多说,放码出来。。。 压缩类: package oracleTestProject; import java.io.File; import java....
  • Java导出zip压缩文件

    千次阅读 2019-01-18 15:20:48
    这里需要说明的是我的项目需要各种不同文件导出,所以进行压缩,当项目上线的时候,我们是没有本地电脑路径的,所以压缩路径我选择在项目的根目录下,全部压缩成功,调用删除,在进行删除,这样在虚拟机上也可以进行...
  • java编写的ftp文件实时监控下载上传

    热门讨论 2016-03-22 17:06:13
    java语言编写的ftp小工具,可以按指定时间监控ftp服务器,把服务器指定目录内新产生的文件或者文件夹下载到本地指定文件夹,下载后删除数据。 也可以监控本地文件夹,把文件夹内新产生的文件或者文件夹整体上传到...
  • Java实现请求后台后,多个Excel压缩成一个zip后,再下载zip,下载完删除压缩包。 1、添加依赖 &lt;!-- 下载依赖 --&gt; &lt;dependency&gt; &lt;groupId&gt;commons-fileupload&...
  • 源码github地址:https://github.com/AReallyMan/jiexiZIP/blob/master/OperateZipsUtil.java 一、解压:使用ZipFile操作zip包,可以很方便去解压目标zip到指定目录,如果... * @param zipPath zip压缩包文件的路径...
  • jsp页面上传zip压缩包,用ajax传给后端进行解压,创建路径解压存储在本地,然后程序调用解压后的文件进行操作,然后再删除临时文件夹。用于批量导入信息和照片,然后ajax回调导入结果返回前端显示给操作者。
  • 选中项目—右键—导出(Export)—java—jar文件—next—自己写jar包的名字和选择路径—finish。 注意:导出的 jar 包需要以压缩包的形式打开,就可以得到源文件和字节码文件了。 Jar包的使用 导入jar...
  • java源码包---java 源码 大量 实例

    千次下载 热门讨论 2013-04-18 23:15:26
     Java zip压缩包查看程序,应用弹出文件选择框,选择ZIP格式的压缩文件,可以像Winrar软件一样查看压缩文件内部的文件及文件夹,源码截图如上所示。 Java 数字签名、数字证书生成源码 2个目标文件 摘要:JAVA源码,...
  • 基于Spring Boot的文件管理系统,支持文件上传,下载,删除等操作,在线浏览文件列表及基本信息等操作。部署简单,Java课程设计必备。 依赖软件: 1、jdk1.8+ 2、maven 开发调试方法: 解压压缩包,导入IDE,...
  • 具体使用的jar包,可就下载。 代码如下: /** * 解压缩tar文件 * @param file 压缩包文件 ... * @param delete 解压后是否删除压缩包文件 */ private static void decompressTar(File file, Str...
  • ::判断 文件是否存在 存在删除 if exist "D:\java\bat\amus_product_meta_tmp.zip" ( del D:\java\bat\amus_product_meta_tmp.zip ) ::判断 文件是否存在 不存在添加 if not exist "D:\java\bat\...
  • 最近有个需求是上传一个压缩包到服务器并实现解压缩,网上找了几个使用ftp上传的例子但是没有实现,各方面总结加上自己的理解编写,最后使用sftp进行涉及,最后实现了文件的上传、下载、删除、解压缩以及文件夹的...
  • ZipUtil.java

    2020-04-05 15:26:28
    Java ZIP压缩一个或多个文件 功能需求: 压缩多个文件成一个zip,并把原始的各个文件删除 ...传压缩包文件名(全路径)、需要压缩的一个或多个文件名(全路径)和是否删除原始文件标志(可选是否删除
  • 文件使用完毕,删除之; 项目中用到了下面几点: 解压zip、rar文件; 临时文件存放,使用完毕删除之; 对压缩包中的图片进行裁剪,生成预览图,并保存; 根据产品族、产品类型、产品系列展示图片; 项目...
  • java源码包2

    千次下载 热门讨论 2013-04-20 11:28:17
     Java zip压缩包查看程序,应用弹出文件选择框,选择ZIP格式的压缩文件,可以像Winrar软件一样查看压缩文件内部的文件及文件夹,源码截图如上所示。 Java 数字签名、数字证书生成源码 2个目标文件 摘要:JAVA源码...
  • java源码包3

    千次下载 热门讨论 2013-04-20 11:30:13
     Java zip压缩包查看程序,应用弹出文件选择框,选择ZIP格式的压缩文件,可以像Winrar软件一样查看压缩文件内部的文件及文件夹,源码截图如上所示。 Java 数字签名、数字证书生成源码 2个目标文件 摘要:JAVA源码...
  • java源码包4

    千次下载 热门讨论 2013-04-20 11:31:44
     Java zip压缩包查看程序,应用弹出文件选择框,选择ZIP格式的压缩文件,可以像Winrar软件一样查看压缩文件内部的文件及文件夹,源码截图如上所示。 Java 数字签名、数字证书生成源码 2个目标文件 摘要:JAVA源码...

空空如也

空空如也

1 2 3 4 5 ... 13
收藏数 245
精华内容 98
热门标签
关键字:

java删除压缩包文件

java 订阅