|
|
@@ -3,21 +3,9 @@ package winter.com.ideaaedi.classwinter.util;
|
|
|
import winter.com.ideaaedi.classwinter.author.JustryDeng;
|
|
|
import winter.com.ideaaedi.classwinter.exception.ClassWinterException;
|
|
|
|
|
|
-import java.io.File;
|
|
|
-import java.io.FileOutputStream;
|
|
|
-import java.io.IOException;
|
|
|
-import java.io.InputStream;
|
|
|
-import java.io.OutputStream;
|
|
|
+import java.io.*;
|
|
|
import java.nio.file.attribute.FileTime;
|
|
|
-import java.util.ArrayList;
|
|
|
-import java.util.Collection;
|
|
|
-import java.util.Comparator;
|
|
|
-import java.util.Enumeration;
|
|
|
-import java.util.HashMap;
|
|
|
-import java.util.LinkedList;
|
|
|
-import java.util.List;
|
|
|
-import java.util.Map;
|
|
|
-import java.util.Objects;
|
|
|
+import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
|
import java.util.zip.ZipEntry;
|
|
|
import java.util.zip.ZipFile;
|
|
|
@@ -146,7 +134,7 @@ public final class JarUtil {
|
|
|
public static <T extends Collection<String>> List<String> unJarWar(String jarWarPath, String targetDir,
|
|
|
boolean delOldTargetDirIfAlreadyExist,
|
|
|
T entryNamePrefixes) {
|
|
|
- List<String> list = new ArrayList<>();
|
|
|
+ Set<String> linkedSet = new LinkedHashSet<>();
|
|
|
File target = new File(targetDir);
|
|
|
if (delOldTargetDirIfAlreadyExist) {
|
|
|
IOUtil.delete(target);
|
|
|
@@ -174,6 +162,7 @@ public final class JarUtil {
|
|
|
targetFile = new File(target, entryName);
|
|
|
guarantyDirExist(targetFile);
|
|
|
String absolutePath = targetFile.getAbsolutePath();
|
|
|
+ linkedSet.add(absolutePath);
|
|
|
storeLastModifiedTimeList.add(absolutePath);
|
|
|
filePthAndLastModifiedTimeMap.put(absolutePath, entry.getLastModifiedTime().toMillis());
|
|
|
} else {
|
|
|
@@ -187,7 +176,7 @@ public final class JarUtil {
|
|
|
byte[] bytes = IOUtil.toBytes(zipFile.getInputStream(entry));
|
|
|
IOUtil.toFile(bytes, targetFile, true);
|
|
|
String absolutePath = targetFile.getAbsolutePath();
|
|
|
- list.add(absolutePath);
|
|
|
+ linkedSet.add(absolutePath);
|
|
|
storeLastModifiedTimeList.add(absolutePath);
|
|
|
filePthAndLastModifiedTimeMap.put(absolutePath, entry.getLastModifiedTime().toMillis());
|
|
|
}
|
|
|
@@ -202,7 +191,7 @@ public final class JarUtil {
|
|
|
//noinspection ResultOfMethodCallIgnored
|
|
|
new File(filePath).setLastModified(lastModifiedTime == null ? System.currentTimeMillis() : lastModifiedTime);
|
|
|
}
|
|
|
- return list;
|
|
|
+ return new ArrayList<>(linkedSet);
|
|
|
}
|
|
|
|
|
|
/**
|