2012-10-05 6 views
53

私はgroovyを使って"../A/B/file.txt"のようなファイルを作成しています。これを行うには、serviceを作成し、file pathargumentとして作成します。このサービスはJobによって使用されます。 Jobは、指定されたディレクトリにファイルを作成する際にロジックを実行します。私は手動で "A"ディレクトリを作成しました。ファイルを含むディレクトリが存在するかどうかをチェックする方法は?

"B"ディレクトリと "A"ディレクトリ内のfile.txtをコードで自動的に作成するにはどうすればいいですか?

ファイルを作成する前にディレクトリ "B"と "A"が存在するかどうかを確認する必要もあります。

答えて

101

フォルダが存在するかどうかをチェックするには、単に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" 
} 
8

編集:これは最終的にあなたの問題ではなく、クラスFileが完全ファイルで指定されたパスを作成する方法mkdirs()を持っている修正された場合、私は知らない

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

:Java8のよう方が良いFilesクラスを使用したいです。

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

感謝を。しかし、ディレクトリの作成と同時に、どのようにfile.txtを作成しますか? – chemilleX3

+0

これはf.mkdrs()ではなくf.mkdir()ですか?ありがとう.. – chemilleX3

+0

私は今、複数のディレクトリを作成しているので、f.mkdrs()であるはずです。ありがとう。 – chemilleX3

関連する問題