Jawaban Jon berfungsi jika Anda yakin bahwa jalur string yang Anda gunakan untuk membuat file termasuk direktori induk, yaitu jika Anda yakin bahwa jalur tersebut dalam bentuk <parent-dir>/<file-name>.
Jika tidak, yaitu jalur relatif dari bentuk <file-name>, maka getParentFile()akan kembali null.
Misalnya
File f = new File("dir/text.txt");
f.getParentFile().mkdirs(); // works fine because the path includes a parent directory.
File f = new File("text.txt");
f.getParentFile().mkdirs(); // throws NullPointerException because the parent file is unknown, i.e. `null`.
Jadi, jika jalur file Anda mungkin atau mungkin tidak menyertakan direktori induk, Anda lebih aman dengan kode berikut:
File f = new File(filename);
if (f.getParentFile() != null) {
f.getParentFile().mkdirs();
}
f.createNewFile();
new File("file.txt").getParentFile()mengembalikannull,new File("dir/file.txt").getParentFile()mengembalikan sama sepertinew File("dir")