web-dev-qa-db-fra.com

Comment vérifier si un répertoire contenant un fichier existe?

J'utilise groovy pour créer un fichier comme "../A/B/file.txt". Pour ce faire, j'ai créé un service et je passe le file path à créer en tant que argument. Ce service est ensuite utilisé par un Job. Le Job fera la logique pour créer le fichier dans le répertoire spécifié. J'ai créé manuellement le répertoire "A".

Comment vais-je créer le répertoire "B" et le fichier.txt dans le répertoire "A" à l'aide de codes pour le créer automatiquement?

Je dois aussi vérifier si les répertoires "B" et "A" existent avant de créer le fichier.

60
chemilleX3

Pour vérifier si un dossier existe ou non, vous pouvez simplement utiliser la méthode exists():

// Create a File object representing the folder 'A/B'
def folder = new File( 'A/B' )

// If it doesn't exist
if( !folder.exists() ) {
  // Create all folders up-to and including B
  folder.mkdirs()
}

// Then, write to file.txt inside B
new File( folder, 'file.txt' ).withWriterAppend { w ->
  w << "Some text\n"
}
113
tim_yates

EDIT: à partir de Java8, vous feriez mieux d'utiliser Files classe:

Path resultingPath = Files.createDirectories('A/B');

Je ne sais pas si cela résout finalement votre problème, mais la classe File a la méthode mkdirs() qui crée complètement le chemin spécifié par le fichier.

File f = new File("/A/B/");
f.mkdirs();
8
Jack