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()));
}
}
}
}