Fix dataloader not getting path correctly

This commit is contained in:
xtaodada 2022-05-20 23:15:24 +08:00 committed by Melledy
parent d59e14e383
commit 0766ec3805

View File

@ -9,7 +9,6 @@ import java.net.URI;
import java.net.URISyntaxException; import java.net.URISyntaxException;
import java.nio.charset.StandardCharsets; import java.nio.charset.StandardCharsets;
import java.nio.file.*; import java.nio.file.*;
import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
@ -77,19 +76,18 @@ public final class FileUtils {
} }
// From https://mkyong.com/java/java-read-a-file-from-resources-folder/ // From https://mkyong.com/java/java-read-a-file-from-resources-folder/
public static List<Path> getPathsFromResource(String folder) throws URISyntaxException, IOException { public static List<Path> getPathsFromResource(String folder) throws URISyntaxException {
List<Path> result = null; List<Path> result = null;
// Get path of the current running JAR // Get pathUri of the current running JAR
String jarPath = Grasscutter.class.getProtectionDomain() URI pathUri = Grasscutter.class.getProtectionDomain()
.getCodeSource() .getCodeSource()
.getLocation() .getLocation()
.toURI() .toURI();
.getPath();
try { try {
// file walks JAR // file walks JAR
URI uri = URI.create("jar:file:" + jarPath); URI uri = URI.create("jar:file:" + pathUri.getRawPath());
try (FileSystem fs = FileSystems.newFileSystem(uri, Collections.emptyMap())) { try (FileSystem fs = FileSystems.newFileSystem(uri, Collections.emptyMap())) {
result = Files.walk(fs.getPath(folder)) result = Files.walk(fs.getPath(folder))
.filter(Files::isRegularFile) .filter(Files::isRegularFile)