2017-02-03 15 views
0

だからそれ以下のコードを持つフォルダJavaのディレクトリを作成しなく

File f = new File(path); 
    if(!f.exists()) 
     f.mkdirs(); 

にファイルを作成するファイルが、この後、私はこのコードを使用するので、私は、ディレクトリを作成したい

file.transferTo(new File(path)); 

マルチパートファイルを同じ場所に保存しますが、すでにファイルが存在するためにスローしてエラーが発生します。ファイルなしでフォルダを作成する方法はありますか? 一つの解決策は、最初のファイルを削除することですが、

EDITがよりよい解決策を探して:

File f = new File(path); 

この行が、それはいけない、フォルダやファイルを作成します。

問題がのIntelliJかのIntelliJデバッグの時計だった:私は、java 8とのIntelliJ 14

ソリューションを使用しています。以下のようだった時計を、それを再起動し、クリア後:

new File(path) file.transferTo(new File(path)) f.exists() コードが仕事を始めました。 mkdirs()はすでにそのことを行います。

+3

は 'f.mkdirsは()'決してファイル、フォルダのみを行うものではありません....その後、上から自分のディレクトリパス内のファイルを作成することができます。 –

+0

または 'f.mkdir()'のみです。 – IQV

+0

@ MarkJeronimusファイルf =新しいファイル(パス)。この行はそれを作成し、ディレクトリを作成し、私はJava 8とIntellijを使用します –

答えて

2

それはあなたが事前に存在を確認する必要はありません

f.getParentFile().mkdirs(); 

でなければなりません。

+0

注意:ファイルパスが親ディレクトリに指定されていない場合、 'getParentFile()'と 'getParent()'はnullを返し、呼び出しコードがそれを処理しない場合、NullPointerExceptionを引き起こす可能性があります。 – npace

+0

@EJPそれはintellijの問題でしたが、タイトルに答えるので、私はあなたの答えを受け入れます。 –

0
File dir = new File("<Your_Path>/TestDirectory"); 

    // attempt to create the directory here 
    boolean successful = dir.mkdir(); 
    if (successful) 
    { 
     // creating the directory succeeded 
     System.out.println("directory was created successfully"); 
    } 
    else 
    { 
     // creating the directory failed 
     System.out.println("failed trying to create the directory"); 
    } 

あなたは

関連する問題