Automatisch Verzeichnis erstellen bei File erstellen

internet

Top Contributor
Hallo,

ist es möglich, sobald ich ein File an eine bestimme Stelle speichern möchte, z.B.
new File("C:/test/123456/test.png") und es in diesem Fall den Ordner 123456 noch nicht gibt, dass dieser automatisch erstellt wird?

Wie schaffe ich das?
 
Hi
Bevor du eine Datei in einem Verzeichnis erstellst, muss du prüfen das Verzeichnis schon vorhanden ist. Wenn nicht, musst du das erstellen... sonst bekommst du eine java.nio.file.NoSuchFileException...
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 Test {
    public static void main(String[] args) {
        String dirPath ="/home/user/123456/";  // für windows musst du den path anders schreiben: "c:\\test\\123456\\"
        String fileName = "test.png";
        Path filePath = Paths.get(dirPath + fileName);
        File folder;
        File file;
     
        folder = new File(dirPath);
        file = new File(dirPath + fileName);
     
        if(!folder.exists()) {
            try {
                Files.createDirectory(filePath.getParent());
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        if(!file.exists()) {
            try {
                Files.createFile(filePath);
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}
 
Ich würde es stattdessen noch so machen:

Code:
            try {
                Files.createDirectories(filePath.getParent());
            } catch (IOException e) {
                e.printStackTrace();
            }

dann wird nämlich der komplette Pfad angelegt, auch wenn zwischendrin z.B. mehrere Verzeichnisse fehlen.
 

Zurück
Oben