2012-03-11 14 views
0

私はwhileループから一連のディレクトリを作成しようとしています。セクションを作成するファイルの コードはここにある:フォルダのパスが既に存在するファイルは新しいディレクトリ(mkdir)を作成したくないのですか?

File userDIR=new File("Folder1//"+VARIABLENUMBER+"//"+VARIABLENUMBER+"_Single.txt"); 
      boolean exists = userDIR.exists(); 
      System.out.println(userDIR);//prints correct location 

      if (!exists) { 
       System.out.println("does not exist"); 
       userDIR.mkdir();//THIS IS NOT HAPPENING 
       System.out.println(userDIR.mkdir());//Prints FALSE? 

      }else{ 
       System.out.println("File Found"); 
      } 

場合、それはそれがないと言う...しかし、私は1つを作成しよう - それは(だけの種類のスキップ)動作しません。または偽と言う...?

私が間違っていることを解決できませんか?

ご意見ありがとうございます。

答えて

10

userDir.mkdirsではなく、mkdirを使用する必要があると思います。

違いは、後者は最下位レベルのディレクトリのみを作成しようとし、親ディレクトリが存在しない場合は失敗するという点です。ただし、userDir.mkdirsは存在しない親ディレクトリも作成します。

+0

驚異的なスタッフ! mkdirsがあったことを気付かなかった:)ありがとう! – Rabiani

0

変更:

userDIR.mkdir(); 

へ:

userDIR.mkdirs(); 
0

まず(代わりのmkdirについて)mkdirsを(使用しよう)私は間違っていないよ場合は、第二に、()が存在します。彼が存在するかどうかに関係なく、ディレクトリの場合は常に真を返します。

0

窓がありますか?ファイルパスに指定された//の代わりにバックスラッシュ\\を使用するべきではありません。here