284 votes

Création automatique du chemin complet lors de l'écriture dans un nouveau fichier

Je veux écrire un nouveau fichier avec le FileWriter . Je l'utilise comme ça :

FileWriter newJsp = new FileWriter("C:\\user\Desktop\dir1\dir2\filename.txt");

Maintenant dir1 y dir2 n'existent pas actuellement. Je veux que Java les crée automatiquement s'ils ne sont pas déjà là. En fait, Java devrait créer le chemin d'accès complet au fichier s'il n'existe pas déjà.

Comment puis-je y parvenir ?

476voto

Jon Skeet Points 692016

Quelque chose comme :

File file = new File("C:\\user\\Desktop\\dir1\\dir2\\filename.txt");
file.getParentFile().mkdirs();
FileWriter writer = new FileWriter(file);

173voto

cdmihai Points 303

Depuis Java 1.7, vous pouvez utiliser Files.createFile :

Path pathToFile = Paths.get("/home/joe/foo/bar/myFile.txt");
Files.createDirectories(pathToFile.getParent());
Files.createFile(pathToFile);

32voto

Armand Points 4075

Utilice File.mkdirs() :

File dir = new File("C:\\user\\Desktop\\dir1\\dir2");
dir.mkdirs();
File file = new File(dir, "filename.txt");
FileWriter newJsp = new FileWriter(file);

18voto

Marcelo Cantos Points 91211

4voto

kakacii Points 142

Utilice FileUtils pour gérer tous ces maux de tête.

Edit : Par exemple, utilisez le code ci-dessous pour écrire dans un fichier, cette méthode va 'vérifier et créer le répertoire parent s'il n'existe pas'.

openOutputStream(File file [, boolean append])

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X