61

我正在使用groovy创建一个像"../A/B/file.txt". 为此,我创建了 aservice并将file path要创建的argument. 然后,该服务由Job. 将Job执行在指定目录中创建文件的逻辑。我手动创建了“A”目录。

如何通过代码自动创建“B”目录和“A”目录内的file.txt?

我还需要在创建文件之前检查目录“B”和“A”是否存在。

4

2 回答 2

118

要检查文件夹是否存在,您可以简单地使用以下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"
}
于 2012-10-05T08:31:22.610 回答
8

编辑:从 Java8 开始,你最好使用Files类:

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

我不知道这是否最终解决了您的问题,但类File具有mkdirs()完全创建文件指定路径的方法。

File f = new File("/A/B/");
f.mkdirs();
于 2012-10-05T01:25:30.157 回答