Ik gebruik groovy
om een bestand te maken zoals "../A/B/file.txt"
. Om dit te doen, heb ik een service
gemaakt en geef ik het file path
door dat moet worden gemaakt als een argument
. Deze service wordt vervolgens gebruikt door een Job
. De Job
doet 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 Files
klasse:
Path resultingPath = Files.createDirectories('A/B');
Ik weet niet of dit uiteindelijk je probleem oplost, maar klasse File
heeft methode mkdirs()
die het door het bestand gespecificeerde pad volledig creëert.
File f = new File("/A/B/");
f.mkdirs();