Java -*.tar解压后删除解压文件夹以及文件

pom依赖

<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-compress -->
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-compress</artifactId>
            <version>1.19</version>
        </dependency>

代码

测试

  public static void main(String[] args) throws Exception {
     
        File file = tarDecompressionS();
        delFile(file);
    }

解压

   public static File tarDecompressionS() throws IOException {
     
        File parent = null;
          String sourcePath = "E:\\test.tar";
            // 要解压到的目录
            String extractPath = "E:\\";
            File sourceFile = new File(sourcePath);
            // decompressing *.tar.gz files to tar
            TarArchiveInputStream fin = new TarArchiveInputStream(new FileInputStream(sourceFile));
            File extraceFolder = new File(extractPath);
            TarArchiveEntry entry;
            // 将 tar 文件解压到 extractPath 目录下
            while ((entry = fin.getNextTarEntry()) != null) {
     
                if (entry.isDirectory()) {
     
                    continue;
                }
                File curfile = new File(extraceFolder, entry.getName());
                parent = curfile.getParentFile();
                if (!parent.exists()) {
     
                    parent.mkdirs();
                }
                // 将文件写出到解压的目录
               IOUtils.copy(fin, new FileOutputStream(curfile));
            }
            //关流
            fin.close();
            //JVM回收
            System.gc();
    return parent;
   }

删除

 //删除文件

   public static boolean delFile(File file) {
     
        if (!file.exists()) {
     
            return false;
        }

        if (file.isDirectory()) {
     
            File[] files = file.listFiles();
            for (File f : files) {
     
                delFile(f);
                System.out.println(f.getName());
            }
        }
        return file.delete();
    }

你可能感兴趣的:(java)