Hallo,
ich habe mit einer IF-Abfrage ein Problem, dass mich verzweifelt. Dazu folgender Test-Code, mit dem ich versuche, mein Problem zu lösen:
Es soll zuerst geprüft werden, ob bereits ein bestimmtes Verzeichnis existiert. Und wenn es nicht existiert
dann lege das Verzeichnis an.
Gleichzeitig lasse ich mir den Boolean-Wert der Abfrage in beiden Fällen anzeigen, sowie einen erklärenden Text.
Wenn das Programm zum ersten Mal abläuft, dann erhalte ich
Wenn ich das Programm ein zweites Mal aufführe, ohne das Verzeichnis "Test" zu löschen, bekomme ich anstelle von
Ich verstehe nicht, warum die if-else-Schleife nicht richtig funktioniert.
Grüße
Wambiu
ich habe mit einer IF-Abfrage ein Problem, dass mich verzweifelt. Dazu folgender Test-Code, mit dem ich versuche, mein Problem zu lösen:
Java:
import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
public class TestRun {
public static void main(String[] args) {
String dir = "Test";
String directory = System.getProperties().getProperty("user.home")+File.separator+dir;
Path dirPath = Paths.get(directory);
if (!(new File(System.getProperties().getProperty("user.home")+File.separator+directory).exists())) {
try {
System.out.println(new File(System.getProperties().getProperty("user.home")+File.separator+directory).exists());
System.out.println("Verzeichnis wird angelegt");
dirPath = Files.createDirectory(dirPath);
} catch (IOException e) {
e.printStackTrace();
}
} else {
System.out.println(new File(System.getProperties().getProperty("user.home")+File.separator+directory).exists());
System.out.println("Verzeichnis ist bereits angelegt");
}
}
}
Java:
if (!(new File(System.getProperties().getProperty("user.home")+File.separator+directory).exists())) {
Gleichzeitig lasse ich mir den Boolean-Wert der Abfrage in beiden Fällen anzeigen, sowie einen erklärenden Text.
Wenn das Programm zum ersten Mal abläuft, dann erhalte ich
Die richtige Schleife wird ausgeführt.false
Verzeichnis wird angelegt
Wenn ich das Programm ein zweites Mal aufführe, ohne das Verzeichnis "Test" zu löschen, bekomme ich anstelle von
folgende Ausgabe mit stacktrace:true
Verzeichnis ist bereits angelegt
false
Verzeichnis wird angelegt
java.nio.file.FileAlreadyExistsException: /home/wambui/Test
at sun.nio.fs.UnixException.translateToIOException(UnixException.java:88)
at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:102)
at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:107)
at sun.nio.fs.UnixFileSystemProvider.createDirectory(UnixFileSystemProvider.java:383)
at java.nio.file.Files.createDirectory(Files.java:628)
at com.linuxmaker.calculator.TestRun.main(TestRun.java:20)
Ich verstehe nicht, warum die if-else-Schleife nicht richtig funktioniert.
Grüße
Wambiu
Zuletzt bearbeitet von einem Moderator: