Javaでフォルダを作成する方法について記載します。
目次
フォルダを作成する方法
フォルダを作成するメソッドは、Fileクラス・Filesクラスから提供されています。
それぞれのクラスに次の特徴があります。
File、Filesクラスの特徴
File
フォルダの作成に失敗した場合、失敗した原因は返されません。
Files
フォルダの作成に失敗した場合、例外が発生し、例外から失敗した原因が分かります。
フォルダを作成するメソッド一覧
No | クラス | メソッド | 戻り値 | 特徴 |
---|---|---|---|---|
1 | File | mkdir | boolean | 戻り値:true(成功)、false(失敗)
親フォルダが存在しない、すでに同名のフォルダ・ファイルが存在する場合、作成に失敗します。 |
2 | File | mkdirs | boolean | 戻り値:true(成功)、false(失敗)
親フォルダが存在しない場合、親フォルダも作成します。 すでに同名のフォルダ・ファイルが存在する場合、作成に失敗します。 |
3 | Files | createDirectory | Path | フォルダ作成に失敗した場合、例外が返ります。 例外からどのような理由で失敗したか分かります。 例えば次の例外が返ります。 java.nio.file.NoSuchFileException java.nio.file.FileAlreadyExistsException: |
4 | Files | createDirectories | Path | フォルダ作成に失敗した場合、例外が返ります。 例外からどのような理由で失敗したか分かります。 親フォルダが存在しない場合、親フォルダも含めて作成します。 |
個人的には、作成に失敗した理由が分かる、Filesクラスのメソッドの使用をオススメします。
1. Fileクラスのmkdirメソッド
フォルダ( /Users/dir )の作成を行います。
実行例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
// 作成するフォルダパスを指定して、Fileインスタンスを生成 File f = new File("/Users/dir"); // フォルダが存在しない場合のみ作成 if( f.exists() == false ) { // フォルダを作成 boolean b = f.mkdir(); if( b == true ) { System.out.println("フォルダ作成 成功"); }else { System.out.println("フォルダ作成 失敗"); } } |
2. Fileクラスのmkdirsメソッド
フォルダ( /Users/dir/sub/subsub )の作成を行います。
Usersフォルダのみ存在する場合、存在しない親フォルダ(dir、sub)は自動的に作成されます。
実行例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
// 作成するフォルダパスを指定して、Fileインスタンスを生成 File f = new File("/Users/dir/sub/subsub"); // フォルダが存在しない場合のみ作成 if( f.exists() == false ) { // フォルダを作成 boolean b = f.mkdirs(); if( b == true ) { System.out.println("フォルダ作成 成功"); }else { System.out.println("フォルダ作成 失敗"); } } |
3. FilesクラスのcreateDirectoryメソッド
フォルダ( /Users/dir )の作成を行います。
実行例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
try { // 作成するフォルダパスを指定して、Pathインスタンスを生成 Path p = Paths.get("/Users/dir"); // フォルダが存在しない場合のみ作成 if( Files.exists(p) == false ) { // フォルダを作成 p = Files.createDirectory(p); } } catch (IOException e) { // フォルダ作成に失敗した場合の処理 e.printStackTrace(); } |
4. FilesクラスのcreateDirectoriesメソッド
フォルダ( /Users/dir/sub/subsub )の作成を行います。
Usersフォルダのみ存在する場合、存在しない親フォルダ(dir、sub)は自動的に作成されます。
実行例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
try { // 作成するフォルダパスを指定して、Pathインスタンスを生成 Path p = Paths.get("/Users/dir/sub/subsub"); // フォルダが存在しない場合のみ作成 if( Files.exists(p) == false ) { // フォルダを作成 p = Files.createDirectories(p); } } catch (IOException e) { // フォルダ作成に失敗した場合の処理 e.printStackTrace(); } |