- 締切済み
mkdirsでフォルダが作成されない
お世話になっております。 現在、javaにてファイルからフォルダの階層情報を読み取り 所定のパスに取得したフォルダ構成を作成するバッチの作成をしているのですが、 Fileオブジェクトのmkdirsメソッドを使用してもうまくフォルダが作成されません。 //呼び出し元メソッド public static void main(String[] args) { List<String> fldList = new ArrayList(); //フォルダ情報の取得は成功しているので割愛 Enumeration enu = Enumeration取得メソッド。 while(enu.hasMoreElements()) { fldList.add(enu.nextElement().toString()); makeFld(fldList); } } //--------フォルダ作成メソッド private static void makeFld(List<String> fldList) throws Exception { StringBuilder sb = new StringBuilder(); sb.append(targetDir); try { for(int i = 1; i < fldList.size() ; i++) { sb.append("\\"); sb.append(fldList.get(i).toString()); } File outputFld = new File( sb.toString().trim() ); if(!outputFld.exists()) { outputFld.mkdirs(); if(outputFld.exists()) { System.out.println("フォルダの作成に成功しました"); } } else { System.out.println("ファイルが既に存在します。"); } } catch(Exception e ) { throw e; } } 一度目の呼び出しでは 「c:\foldercreate\targetdir\dir1」 といったようなパスになっておりうまくフォルダが作成されるのですが 二度目の呼び出しで 「c:\foldercreate\targetdir\dir1\category1」 といったようなフォルダパスをFileオブジェクトのコンストラクトに渡しても うまくmkdirsでフォルダが作成されません。 Fileオブジェクトのコンストラクタ、フォルダの書き込み権限等については問題がありません。 原因等がお分かりであればご教授のほどお願いします。
- みんなの回答 (2)
- 専門家の回答