2012-05-14 18 views
7

javaでは、 'c:\ test \ upload \ myfile.txt'のような新しいファイルに文字列を書き込む必要があります。もし 'upload'フォルダが存在しない場合は自動的に作成されます。どうやってするの ? Apache Commons IOにはこのAPIがありますか?不足しているフォルダを自動的に作成する方法は?

+0

[可能であればディレクトリを作成し、必要に応じてディレクトリを作成するJavaでの方法の可能な複製](http://stackoverflow.com/questions/1752518/method-in-java-to-create-a-file -at-a-location-creating-directories-if-needed) – skaffman

答えて

11
File file = new File(...); 
file.mkdirs(); //for several levels, without the "s" for one level 
FileWriter fileWriter = new FileWriter(file); 
fileWriter.write("..."); 

必要だが、存在しない親ディレクトリを含めて、この抽象パス名がディレクトリを作成します。この操作が失敗した場合、必要な親ディレクトリのいくつかを作成できた可能性があります。

戻り値: ディレクトリが作成された場合にのみ、必要なすべての親ディレクトリが必要です。そうでない場合はfalse

File.mkdirs()File.mkdir()

+0

これは実際に質問に答えるものではありません。 – skaffman

+0

ファイルに実際に書き込んでも意味がありませんか?私はそれが問題のタイトルであるとは思わなかった。更新:サンプルにファイルの書き込みを追加しました。 –

3
new File(fileToSave.getParent()).mkdirs(); 

それは作りが成功した場合、ディスクがいっぱいであるかの場合に失敗します(チェックするブール値を返すを参照してください。ファイルの名前は「アップロード」などで存在する場合受け入れ答えに加えて)

3

、質問もライブラリApacheのコモンIOを述べているので、私はTHIを使用して、以下の溶液中で報告素敵なライブラリー(S)

File file = new File("... the directory path ..."); 
FileUtils.forceMkdir(file); 

このソリューションは、パッケージorg.apache.commons.ioと「が必要だが、存在しない親ディレクトリ含め、ディレクトリを作ります」という方法forceMkdirから、クラスFileUtilsを使用しています。

+1

この解決策は、例外をキャッチするよう強制します(既存ファイルを渡す場合は 'IOException')。 – naXa

関連する問題