Lors de l'utilisation
file.createNewFile();
J'obtiens l'exception suivante
java.io.IOException: Parent directory of file does not exist: /.../pkg/databases/mydb
Je me demande s'il existe un createNewFile qui crée les répertoires parents manquants?
new File("file.txt").getParentFile()
renvoienull
,new File("dir/file.txt").getParentFile()
renvoie le même quenew File("dir")
mkdirs
si le fichier que vous essayez de créer ne se trouve pas dans un répertoire inexistant, mais mon cas d'utilisation est que je crée plusieurs fichiers, dont certains ont des répertoires parents, tandis que d'autres ne le font pas.La réponse de Jon fonctionne si vous êtes certain que la chaîne de chemin avec laquelle vous créez un fichier inclut les répertoires parents, c'est-à-dire si vous êtes certain que le chemin est de la forme
<parent-dir>/<file-name>
.Si ce n'est pas le cas, c'est-à-dire qu'il s'agit d'un chemin relatif du formulaire
<file-name>
, alorsgetParentFile()
retourneranull
.Par exemple
Donc, si votre chemin de fichier peut ou non inclure des répertoires parents, vous êtes plus sûr avec le code suivant:
la source
À partir de java7, vous pouvez également utiliser l'API NIO2:
la source