Что произойдет при неудачной попытке создания каталога с помощью метода mkdir
Файл mkdir () метод в Java с примерами
Подпись функции:
Синтаксис:
Параметры: Этот метод не принимает никаких параметров.
Исключение: этот метод генерирует исключение SecurityException, если метод не позволяет создавать каталог
Ниже программы проиллюстрируют использование функции mkdirs ():
Пример 1: Попробуйте создать новый каталог с именем program на диске «f:».
// Java-программа для демонстрации
// использование метода File.mkdirs ()
public static void main(String args[])
// создаем абстрактный путь (объект File)
File f = new File( «F:\\program» );
// проверка возможности создания каталога
// используя абстрактный путь
// показать, что каталог создан
// как функция вернула true
System.out.println( «Directory is created» );
// показать, что каталог не может быть создан
// как функция вернула false
System.out.println( «Directory cannot be created» );
Выход:
Пример 2: Попробуйте создать новый каталог с именем program1 в каталоге «f: / program», но каталог программ не создан. Мы проверим, может ли функция mkdir () создать родительские каталоги с абстрактным именем пути, если каталоги нет
// Java-программа для демонстрации
// использование метода File.mkdir ()
public static void main(String args[])
// создаем абстрактный путь (объект File)
File f = new File( «F:\\program\\program1» );
// проверка возможности создания каталога
// используя абстрактный путь
// показать, что каталог создан
// как функция вернула true
System.out.println( «Directory is created» );
// показать, что каталог не может быть создан
// как функция вернула false
System.out.println( «Directory cannot be created» );
Выход:
Программы могут не работать в онлайн-среде IDE. пожалуйста, используйте автономную IDE и установите путь к файлу
Русские Блоги
CreateNewFile, mkdir и mkdirs класса File
createNewFile()
Используется для создания файлов, просто файлов, а не папок (каталогов);
Возвращает истину, если создание прошло успешно, ложь, если это не удалось.
Он создается, когда файл с указанным именем не существует в этом абстрактном пути, если файл с указанным именем уже существует в пути, он не будет создан, и будет возвращено значение false.
Когда указанный абстрактный путь не существует, сообщается об исключении IOException: система не может найти указанный путь. Например:
Предположим, что указанный абстрактный путь называется «C: /Users/Desktop/djomega/test/test.txt»,
mkdir()
Родительский каталог, используемый для создания файла, указанного этим абстрактным путем. Возвращает true, если создание прошло успешно, и false, если создание не удалось;
Просто создайте каталоги, а не файлы;
Однако, если директории djomega нет, возвращается false.
mkdirs()
Используется для создания многоуровневого каталога, указанного этим абстрактным путем. Возвращает true, если создание прошло успешно, и false, если создание не удалось;
Просто создайте каталоги, а не файлы;
Если он существует, создание завершается неудачно и возвращается в fsle;
Как упоминалось ранее, каталог djomega отсутствует, и создается mkdirs ().
О getParentFile ()
Чтобы создать каталог с помощью mkdir () или mkdirs (), обязательно используйте getParentFile (), иначе он создаст файл как папку;
То есть test.txt будет создан как каталог;
mkdir() is not creating the new directory
I am using Eclipse and jdk1.7. I am making a basic program using file handling, in which an output directory inside the directory is to be made. But when I run the program, the output is showing false and the directory is not made. I thought that the output was false because of the presence of a directory with the same name, but this is not the reason. So I need help. Here is my code:
7 Answers 7
You have to use mkdirs() with an s if you want to create multiple directories. It is probably also worth checking that you canWrite() to the location as some places are permissioned. Both of these are on the File class
have a look to this:
The first print won’t create a directory and returns false but the second does and returns true
it looks like you’ll need to work on your path a bit as it doesn’t look like File will infer «abc.»
Also, make sure you have permissions on the path you’re attempting to create the directory. If you don’t, it will fail. It has been a while since I’ve played with Java, so not sure if you’d need to do mkdir calls the entire way down the path (ie /here/, /here/now-here/, /here/now-here/final) or not. Think it may be recursive but that’d be worth verifying.
Actually, from looking at the other answers looks like mkdirs would be recursive, mkdir is not. I’d go with mkdirs especially if the input isn’t going to be known from the onset otherwise you’ll end up writing a function with mkdir that does the exact same thing.
mkdir () не создает новый каталог
Я использую Eclipse и jdk1.7. Я делаю базовую программу, использующую обработку файлов, в которой должен быть создан выходной каталог внутри каталога. Но когда я запускаю программу, вывод показывает false, и каталог не создается. Я думал, что результат был ложным из-за наличия каталога с таким же именем, но это не причина. Так что мне нужна помощь. Вот мой код:
7 ответов
Вы должны использовать mkdirs () с буквой s, если вы хотите создать несколько каталогов. Вероятно, также стоит проверить, что вы canWrite () в это место, так как некоторые места разрешены. Оба они находятся в классе File
Похоже, что вам нужно немного поработать над своим путем, поскольку не похоже, что File выведет «abc».
Кроме того, убедитесь, что у вас есть разрешения на путь, по которому вы пытаетесь создать каталог. Если вы этого не сделаете, он потерпит неудачу. Прошло некоторое время с тех пор, как я играл с Java, поэтому не уверен, нужно ли вам выполнять вызовы mkdir на всем пути (например, / здесь /, / здесь / сейчас-здесь /, / здесь / сейчас- здесь / финал) или нет. Думаю, это может быть рекурсивно, но это стоит проверить.
Здесь метод makedirectories создаст все каталоги, которые отсутствуют в пути, который представляет файловый объект.
Источник и ссылка ниже (подробно объяснено).
Убедитесь, что в имени каталога нет точек. Например: «ab.c» следует заменить на «abc».
Mkdir нужен абстрактный путь, а не относительный путь. попробуй использовать.
Из Java DOC:
Создает каталог, названный этим абстрактным путем.
истина, если и только если каталог был создан; ложь иначе
Как создать каталог на Java?
Как только я проверил System.getProperty(«user.home»);
Я должен создать папку (имя папки «новая папка» ), если и только если новая папка не существует.
18 ответов:
7 лет, я буду обновлять его для лучшего подхода, который предлагается Божо.
этой библиотека есть много полезных функций.
mkdir vs mkdirs
если вы хотите создать один каталог, используйте mkdir
если вы хотите создать иерархию структуры папок использовать mkdirs
создать один каталог.
создайте каталог с именем «Directory2 и все его подкаталоги «Sub2» и «Sub-Sub2» вместе.
следующий метод должен делать то, что вы хотите, просто убедитесь, что вы проверяете возвращаемое значение mkdir ()/mkdirs()
хотя этот вопрос был дан ответ. Я хотел бы поставить что-то дополнительное, т. е. если существует файл с именем каталога, который вы пытаетесь создать, чем он должен вызвать ошибку. Для будущих посетителей.
для получения дополнительной информации посмотреть этого.
создать папку в Java, у нас есть два метода
здесь метод makedirectory создает один каталог, если он не существует.
здесь метод makedirectories создаст все каталоги, которые отсутствуют в пути, который представляет объект file.
Это способ работы для меня сделать один каталог или несколько или их: необходимо импортировать java. io. File;
/ * введите код ниже, чтобы добавить diectory dir1 или проверить, существует ли dir1, если нет, поэтому создайте его и то же самое с dir2 и dir3 */
эта функция позволяет создать каталог в домашнем каталоге пользователя.
если вы хотите быть уверены, что его создали тогда этот:
beacuse mkDir() возвращает логическое значение, и findbugs будет кричать об этом, если вы не используете переменную. Также это не приятно.
mkDir() возвращает только true, если mkDir() создает его. Если каталог существует, то он возвращает значение false, поэтому проверьте папку вы создали, только вызов exists() если mkDir() возвращает false.
assertThat() будет проверяет результат и не выполняется, если exists() возвращает false. ОФК вы можете использовать другие вещи для обработки созданного каталога.