61

groovyのようなファイルを作成するために使用しています"../A/B/file.txt"。これを行うには、 を作成し、を として作成するようにservice渡します。このサービスは、 によって使用されます。は、指定されたディレクトリにファイルを作成するロジックを実行します。「A」ディレクトリを手動で作成しました。file pathargumentJobJob

コードを使用して「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 に答える