Mit Java ein Verzeichnis erstellen (Program Files (x86))

HISTORY

Mitglied
Hallo liebes Forum

und wieder habe ich mal ein Problem
Ich möchte gerne unter C:/Program Files (x86) ein Verzeichnis Names "test" erstellen.
Leider wird dieses Verzeichnis aber nie erstellt. Was mache ich falsch? Ist das ein Windows Problem?

Das Verzeichnis sollte dort erstellt werden, denn da kommt später noch eine config.txt^^ Datei rein.
Oder hat jemand eine andere Idee wo ich diese unterbringen könnte (wo es den user nicht stört)?

Die erste Version geht aber die zweite nicht, siehe im Beispiel.

Java:
File f = new File("C:/Notizen"); //Verzeichnis kann ohne Probleme erstellt werden
f.mkdir();

      
File configDirectory = new File("C:/Program Files (x86)/test/"); //Geht irgendwie nicht (bekomme keine Fehlermeldung)
configDirectory.mkdir();

PS. Das Programm soll nicht Plattform unabhängig werden. Wieso seht ihr unten.

Java:
startProgramm(" %SystemRoot%\\explorer.exe /E,::{ED228FDF-9EA8-4870-83b1-96b02CFE0D52}");

Freundliche grüsse

HISTORY
 

slowfly

Erfahrenes Mitglied
Also folgender Code läuft bei mir:
Code:
String programFilesPath = System.getenv("ProgramFiles");
if (programFilesPath != null) {
	File dirToCreate = new File(programFilesPath + File.separator + "myPath");
	if (dirToCreate.exists() == false) {
		boolean creationWasSuccessful = dirToCreate.mkdirs();
		if (creationWasSuccessful == false) {
			System.out.println("Creation was not successful");
		}
	}
} else {
	System.out.println("Unable to get programFiles path");
}

Wichtig ist, dass du über System.getEnv den Pfad zu "Program Files" holst. Weil bei mir heisst's z.B. nicht "c:\program files (x86)", sonder nur "c:\program files".

Evtl. geht's bei dir auch nicht, weil du keine lokalen Adminrechte hast? Falls dem so wäre, kannst du ja das Konfigurationsfile dort hinlegen, wo das aktuelle Jar läuft. Ob das einfach geht, weiss ich nicht. Die nächste Alternative wäre, das ist wahrscheinlich sogar am Korrektesten, wenn du das ganze ins "user.dir", also ins home-Verzeichnis, ablegst. Dann können auch zwei verschiedene Benutzer am gleichen System verschiede Konfigurationen haben.

Gruss
slowy
 

HISTORY

Mitglied
Also erstmal sorry für die späte Antwort. (Hatte irgendwie vergessen die Lösung zu posten)
Nun wie habe ich es gemacht: 1. Ich speichere nicht in programme x86 sondern in appdata.

2. Code:


Java:
File directory = new File(System.getenv("appdata") + File.separator + "config"); //System.getenv() == Windows Umgebunsvariable
directory.mkdir();

Gruss HISTORY