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