如何检查包含文件的目录是否存在?

时间:2012-10-05 01:22:28

标签: groovy

我正在使用groovy来创建像"../A/B/file.txt"这样的文件。为此,我创建了service并将file path传递给argument。然后,Job使用此服务。 Job将在创建指定目录中的文件时执行逻辑。我手动创建了“A”目录。

如何通过代码在“A”目录中创建“B”目录和file.txt以自动创建它?

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

2 个答案:

答案 0 :(得分:112)

要检查文件夹是否存在,您只需使用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"
}

答案 1 :(得分:8)

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

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

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

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