Файл не хочет создавать новый каталог (mkdir)? - PullRequest
0 голосов
/ 12 марта 2012

Итак, я пытаюсь создать набор каталогов из цикла while.Код для раздела создания файла находится здесь:

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");
            }

Если путь к папке уже существует, он говорит, что делает ... но если я пытаюсь создать один - он не работает (просто пропускает) или говорит ложь ...?

Не можете понять, что я делаю не так?

Спасибо за любые комментарии или предложения.

Ответы [ 4 ]

10 голосов
/ 12 марта 2012

Я думаю, вам нужно использовать userDir.mkdirs, а не mkdir.

Разница в том, что последний попытается создать только каталог на самом низком уровне, и если какой-либо из родительских каталогов не существует, произойдет сбой. Однако userDir.mkdirs также создаст все несуществующие родительские каталоги.

0 голосов
/ 12 марта 2012

Вы на окнах? Если в пути к файлу не используется обратная косая черта \\ вместо // как указано здесь .

0 голосов
/ 12 марта 2012

Во-первых, попробуйте использовать mkdirs () вместо mkdir (), во-вторых, если я не ошибаюсь, существует (); всегда возвращать true в случае каталога, независимо от того, существует он или нет.

0 голосов
/ 12 марта 2012

Изменение:

userDIR.mkdir(); 

Кому:

userDIR.mkdirs();
...