Эх сурвалжийг харах

fix => 修复文件排序器漏了文件夹排序的问题

JustryDeng 10 сар өмнө
parent
commit
3615d3b731

+ 6 - 17
class-winter-core/src/main/java/winter/com/ideaaedi/classwinter/util/JarUtil.java

@@ -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);
     }
     
     /**