2017-02-03 5 views
0

Так с кодом ниже его создает файл в папкеJava сделать каталог, но не файл

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

, но я только хочу, чтобы создать каталог, потому что после этого я использую этот код

file.transferTo(new File(path)); 

, который сохраняет Многостраничный файл в том же месте, но он вызывает и ошибку, потому что файл уже есть. Есть ли способ создать папку без файла? Одним из решений является удаление первого файла, но ищет лучшее решение

EDIT:

File f = new File(path); 

эта линия создает папки и файла, он не должен. Я использую Java 8 и IntelliJ 14

РЕШЕНИЕ:

Проблема была IntelliJ или IntelliJ отлаживать часы. После перезапуска и очистки часы, которые были как:

new File(path) file.transferTo(new File(path)) f.exists() код начал работать.

+3

'f.mkdirs()' никогда не делает файлы, только папки. –

+0

Или только 'f.mkdir()'. – IQV

+0

@MarkJeronimus Файл f = новый Файл (путь); эта строка делает это, а также создает каталоги, я использую java 8 и Intellij –

ответ

2

Это должно быть

f.getParentFile().mkdirs(); 

Вам не нужно, чтобы проверить наличие заранее: 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"); 
    } 

Вы можете создавать свои файлы внутри путь к папке с тех пор ....