Hoe kan ik controleren of een map met een bestand bestaat?

Ik gebruik groovyom een ​​bestand te maken zoals "../A/B/file.txt". Om dit te doen, heb ik een servicegemaakt en geef ik het file pathdoor dat moet worden gemaakt als een argument. Deze service wordt vervolgens gebruikt door een Job. De Jobdoet de logica bij het maken van het bestand in de opgegeven map. Ik heb handmatig de map “A” gemaakt.

Hoe maak ik de “B”-map en het bestand.txt in de “A”-map door middel van codes om deze automatisch aan te maken?

Ik moet ook controleren of de mappen “B” en “A” bestaan ​​voordat ik het bestand maak.


Antwoord 1, autoriteit 100%

Om te controleren of een map bestaat of niet, kunt u eenvoudig de exists()-methode gebruiken:

// 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"
}

Antwoord 2, autoriteit 7%

EDIT: vanaf Java8 kun je beter Filesklasse:

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

Ik weet niet of dit uiteindelijk je probleem oplost, maar klasse Fileheeft methode mkdirs()die het door het bestand gespecificeerde pad volledig creëert.

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

Other episodes