loadBoardAsList Methode verändert
parent
99fe1f30c4
commit
a92ddc2099
|
@ -1,8 +1,12 @@
|
||||||
package PR2.HitoriSpiel.GUI;
|
package PR2.HitoriSpiel.GUI;
|
||||||
|
|
||||||
import java.io.*;
|
import java.io.*;
|
||||||
|
import java.net.URLDecoder;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Enumeration;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.jar.JarEntry;
|
||||||
|
import java.util.jar.JarFile;
|
||||||
|
|
||||||
public class BoardLoader {
|
public class BoardLoader {
|
||||||
|
|
||||||
|
@ -27,21 +31,32 @@ public class BoardLoader {
|
||||||
public static List<String> loadBoardsAsList() {
|
public static List<String> loadBoardsAsList() {
|
||||||
List<String> boardFiles = new ArrayList<>();
|
List<String> boardFiles = new ArrayList<>();
|
||||||
try {
|
try {
|
||||||
// Lade alle Ressourcen in "persistent/Hitori_Spielfelder/"
|
var resource = BoardLoader.class.getClassLoader().getResource("persistent/Hitori_Spielfelder/");
|
||||||
InputStream resourceStream = BoardLoader.class.getResourceAsStream("/persistent/Hitori_Spielfelder/");
|
if (resource == null) {
|
||||||
if (resourceStream == null) {
|
|
||||||
throw new IOException("Das Verzeichnis 'persistent/Hitori_Spielfelder/' wurde nicht gefunden.");
|
throw new IOException("Das Verzeichnis 'persistent/Hitori_Spielfelder/' wurde nicht gefunden.");
|
||||||
}
|
}
|
||||||
|
|
||||||
// Prüfen, ob die Dateien im Ressourcen-Ordner vorhanden sind
|
if (resource.getProtocol().equals("file")) {
|
||||||
BufferedReader reader = new BufferedReader(new InputStreamReader(resourceStream));
|
// Zugriff auf das Dateisystem (IDE-Umgebung)
|
||||||
String line;
|
File directory = new File(resource.toURI());
|
||||||
while ((line = reader.readLine()) != null) {
|
for (File file : directory.listFiles()) {
|
||||||
if (line.endsWith(".csv")) {
|
if (file.isFile() && file.getName().endsWith(".csv")) {
|
||||||
boardFiles.add(line);
|
boardFiles.add(file.getName());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else if (resource.getProtocol().equals("jar")) {
|
||||||
|
// Zugriff im JAR
|
||||||
|
String path = resource.getPath().substring(5, resource.getPath().indexOf("!")); // JAR-Pfad extrahieren
|
||||||
|
try (JarFile jar = new JarFile(URLDecoder.decode(path, "UTF-8"))) {
|
||||||
|
Enumeration<JarEntry> entries = jar.entries();
|
||||||
|
while (entries.hasMoreElements()) {
|
||||||
|
String name = entries.nextElement().getName();
|
||||||
|
if (name.startsWith("persistent/Hitori_Spielfelder/") && name.endsWith(".csv")) {
|
||||||
|
boardFiles.add(name.substring(name.lastIndexOf("/") + 1));
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
System.err.println("Fehler beim Laden der Spielfelder: " + e.getMessage());
|
System.err.println("Fehler beim Laden der Spielfelder: " + e.getMessage());
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue