原创 

java 解压rar文件,子级目录文件拷贝到父级

分类:java    418人阅读    IT小君  2021-04-21 22:52
package com.tool;


import com.github.junrar.Junrar;
import org.apache.commons.io.FileUtils;

import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.Collection;

public class RarTool {

    public static void main(String[] args) throws Exception {
        String dir = "E:\\procedure\\python\\shopSpider\\upload";

        Collection<File> listFiles2 = FileUtils.listFiles(new File(dir), new String[]{"rar"}, false);
        listFiles2.forEach(item -> {
            String path = item.getAbsolutePath();
            String name = item.getName();
            if(!name.startsWith("moban"))return;
            String newPath = item.getParent() + "//" + name.replace(".rar", "");
            File newDir = new File(newPath);
            try {
                FileUtils.deleteDirectory(newDir);
                FileUtils.forceMkdir(newDir);
                Junrar.extract(path, newPath);
                File innerFile = Files.list(Paths.get(newPath)).findFirst().get().toFile();
                move(newDir,innerFile);
                innerFile.renameTo(new File(newPath, innerFile.getName()));
                FileUtils.deleteDirectory(innerFile);
                FileUtils.deleteQuietly(new File(newPath+"//说明.htm"));
            } catch (Exception e) {
                System.out.println(name);
                e.printStackTrace();
            }
        });
    }

    private static void move(File toDir, File currDir) throws IOException {
        for (File file : currDir.listFiles()) {
            if (file.isDirectory()) {
                File newDir = new File(toDir.getAbsolutePath()+"//"+file.getName());
                if(!newDir.exists())
                    FileUtils.forceMkdir(newDir);
                move(newDir, file);
            } else {
                file.renameTo(new File(toDir, file.getName()));
            }
        }
    }
}


点击广告,支持我们为你提供更好的服务

css鼠标跟随文字模糊特效

html5图标下拉搜索框自动匹配代码

jQuery右端悬浮带返回顶部特效

css+js实现的颜色渐变数字时钟动画特效

html5 canvas进度条圆环图表统计动画特效

响应式时尚单品在线商城网站模板

html5 canvas彩色碎片组合球形旋转动画特效

js+css3抽奖转盘旋转点餐代码

HTML5现代家居装潢公司网站模板

有机水果蔬菜HTML5网站模板

小众时尚单品在线电子商务网站模板

canvas炫酷鼠标移动文字粒子特效

中小型创意设计服务公司网站模板

响应式太阳能能源公司网站模板

HTML5 Canvas竖直流动线条背景动画特效

html5 svg夜空中星星流星动画场景特效

网页设计开发公司网站模板

现代时尚家具公司网站模板

响应式咖啡饮品宣传网站模板

HTML5数字产品服务公司网站模板

点击广告,支持我们为你提供更好的服务
 工具推荐 更多»
点击广告,支持我们为你提供更好的服务