Wie sorge ich dafür, dass mein Spiel die ini-Datei in der Resourcen-ordner des Projektes schreibt?

Bitte aktiviere JavaScript!
Hallo

Mein Spiel schreibt eine ini-Datei, wenn ich es beende:
Java:
            public void windowClosing(WindowEvent event)
            {
                try
                {
                    File newFile = new File("D:\\Mods\\AngryBirdsSokoban-Data.ini");
                    newFile.createNewFile();
                    Wini ini = new Wini(new File("D:\\Mods\\AngryBirdsSokoban-Data.ini"));
                   
                    int i = 0;
                   
                    for (String level: board.levels.levels)
                    {
                        ini.put("Levels", "Level "  + i + " solved", board.solved[i]);
                        i++;
                    }
                   
                    ini.put("Levels", "Actual", board.level_number);
                    ini.put("Design", "Walls", board.wall_design_dialog.selected);
                    ini.store();
                }
                catch(Exception e)
                {
                    System.err.println(e.getMessage());
                }
               
                dispose();
                System.exit(0);
            }
Darin werden der Fortschritt (gelöste Levels) und ein paar Einstellungen gespeichert.

Beim erneuten Starten liest es diese ini aus:
Java:
        try
        {
            Wini ini = new Wini(new File("D:\\Mods\\AngryBirdsSokoban-Data.ini"));
           
            selected_wall = ini.get("Design", "Walls");
            loadLevel(ini.get("Levels", "Actual", int.class));
           
            i = 0;
           
            for (String level: levels.levels)
            {
                solved[i] = ini.get("Levels", "Level "  + i + " solved", int.class);
                i++;
            }
        }
        catch(Exception e)
        {
            System.err.println(e.getMessage());
        }
Wie muss ich die Zeilen: "new File("D:\\Mods\\AngryBirdsSokoban-Data.ini")" ändern, damit es die Ini in das "resources"-Package meiner Projekt-Struktur schreibt.?

Für die Verwendung von dort gespeicherten Grafiken funktioniert ein Pfad-String, der mit dem "main"-Package meines Projektes beginnt.

So etwas würde ich auch gerne für die ini-Datei nutzen.

Kann ich dort die gleiche Art von Pfad-String nutzen, wie für die Grafiken, nur mit dem Namen der ini-Datei am Ende?
 
Das funktioniert nicht, wenn dein Spiel als Jar gepackt ist, aus der jar kannst du nur lesen, nicht aber in diese schreiben.
 
Wenn es fertig ist, soll es einen Ordner geben, der eine .exe und einen Resource-Ordner enthält, in dem wiederum die ini und die Grafiken zu finden sind.

Da soll es doch die ini stets dort finden können, egal, wo im Datei-System des Computers sich der äußere Ordner befindet.
 
Ich habe den Eindruck, bei dem jetzigen Dateipfad-String kann es nur dann eine ini-Datei schreiben und nutzen, wenn es ein Laufwerk D gibt und darin einen Ordner "Mods".

Also muss ich das doch irgendwie anpassen können, dass es keinen kompletten Pfad mehr dafür braucht, der bei einem Laufwerk beginnt, sondern die ini stets in den Ordner schreibt, in dem es sich auch selbst befindet, egal, wie der heißt, oder wo im Dateisystem er sich befindet.
 
Nimm ein Verzeichnis, welches für sowas gedacht ist, zB Appdata (heißt doch so unter Windows?).
Das Verzeichnis, in welchem das Program liegt, nimmt man idealerweise als schreibgeschützt an.
 
Passende Stellenanzeigen aus deiner Region:

Neue Themen

Oben