Как создать папку на диске java

Обновлено: 07.07.2024

Класс File пакета java.io используется для управления информацией о файлах и каталогах. На уровне операционной системы файлы и каталоги имеют существенные отличия, но в Java они описываются одним классом File. Каталог в Java трактуется как обычный файл, но с дополнительным свойством — списком имен файлов, который можно просмотреть с помощью метода list.

В зависимости от назначения объект File - файл или каталог, можно использовать один из конструкторов для создания объекта:

Примеры создания объектов File

Свойства и методы класса File

Для определения стандартных свойств файла в классе File имеются различные методы. Однако класс File несимметричен, т.е. методы определения свойств объекта существуют, но соответствующие функции для изменения этих свойств отсутствуют.

ФункцииОписание
String getName() Наименование файла или каталога.
String getParent() Наименование родительского каталога.
long length() Функция определения размера файла в байтах.
String getAbsolutePath() Функция определения абсолютного пути файла или каталога.
boolean delete() Удаления файла или каталога.
boolean exists() Проверка существования файла или каталога.
boolean isDirectory() Проверка, является ли данный объект каталогом.
boolean isFile() Проверка, является ли данный объект файлом.
long lastModified() Функция определения даты последней модификации файла.
boolean canRead() Проверка, можно ли читать данные из файла.
boolean canWrite() Проверка, можно ли записывать данные в файл.
boolean isHidden() Проверка, являются ли каталог или файл скрытыми.
String[] list() Чтение массива наименований файлов и подкаталогов.
File[] listFiles() Чтение массива файлов и подкаталогов.
boolean mkdir() Создание нового каталога.
boolean renameTo(File dest)Переименовывание файла или каталога.

В следующем примере открываем файл "d:/test/MyFile.txt" (Windows) и извлекаем его характеристики:

В консоли будет отпечатана следующая информация:

Интерфейс FileFilter

Класс File включает метод, позволяющий прочитать список только определенных файлов.

В отличие от одноименного метода, но без параметра, данный метод отбирает только те файлы каталога, которые удовлетворяют определенному условию. Параметр filter предназначен для задания этого условия. При этом тип параметра FileFilter — это не класс, а интерфейс, который имеет всего один метод, возвращающий true, если файл удовлетворяет определенным условиям, и false в противном случае.

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

Для использования FileFilter необходимо создать объект и определить в нем соответствующий метод accept.

Пример использования фильтра FileFilter

Чтение содержимого файла FileInputStream

Для чтения содержимого файла можно использовать класс FileInputStream, который является наследником класса InputStream и реализует все его методы. Конструктор класса FileInputStream :

Если файл не может быть открыт то генерируется исключение FileNotFoundException.

Пример считывания данных из файла и вывод содержимого в консоль:

Данные файла можно считать в массив байтов :

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

Пример использования FileInputStream для чтения файла свойств в кодировке UTF-8:

Файл свойств "data.properties" в кодировке UTF-8:

Запись в файл FileOutputStream

Класс FileOutputStream, является производным от класса OutputStream, поэтому наследует всю его функциональность.

Пример записи строки в файл:

Для создания объекта FileOutputStream используется конструктор, принимающий в качестве параметра путь к файлу для записи. Для записи строки ее сначала переводим в массив байт и с помощью метода write строка записывается в файл. Необязательно записывать весь массив байтов. Используя перегрузку метода write(), можно записать и одиночный байт:

Пример перезаписи содержимого из одного файла в другой:

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

Я должен создать папку (имя папки "новая папка" ), если и только если новая папка не существует.

7 лет, я буду обновлять его для лучшего подхода, который предлагается Божо.

удалено:

здесь "Каталог" - это имя каталога, который вы хотите создать/существовать.

mkdir vs mkdirs

если вы хотите создать один каталог, используйте mkdir

если вы хотите создать иерархию структуры папок использовать mkdirs

  1. создать один каталог.

  2. создайте каталог с именем "Directory2 и все его подкаталоги "Sub2" и "Sub-Sub2" вместе.

следующий метод должен делать то, что вы хотите, просто убедитесь, что вы проверяете возвращаемое значение mkdir ()/mkdirs()

хотя этот вопрос был дан ответ. Я хотел бы поставить что-то дополнительное, т. е. если существует файл с именем каталога, который вы пытаетесь создать, чем он должен вызвать ошибку. Для будущих посетителей.

просто хотел указать всем, кто звонит File.mkdir() или File.mkdirs() быть осторожным File "объект" - это каталог, а не файл. Например, если вы вызываете mkdirs() на пути /dir1/dir2/file.txt , это создаст папку на имя file.txt что, вероятно, не то, чего вы хотели. Если вы создаете новый файл, а также автоматически создавать родительские папки вы можете сделать что-то вроде этого:

попробуй этим.

для получения дополнительной информации посмотреть этого.

Это способ работы для меня сделать один каталог или несколько или их: необходимо импортировать java. io. File;
/ * введите код ниже, чтобы добавить diectory dir1 или проверить, существует ли dir1, если нет, поэтому создайте его и то же самое с dir2 и dir3 */

эта функция позволяет создать каталог в домашнем каталоге пользователя.

если вы хотите быть уверены, что его создали тогда этот:

beacuse mkDir() возвращает логическое значение, и findbugs будет кричать об этом, если вы не используете переменную. Также это не приятно.

mkDir() возвращает только true, если mkDir() создает его. Если каталог существует, то он возвращает значение false, поэтому проверьте папку вы создали, только вызов exists() если mkDir() возвращает false.

assertThat() будет проверяет результат и не выполняется, если exists() возвращает false. ОФК вы можете использовать другие вещи для обработки созданного каталога.


Следуйте за нами на нашей фан-странице, чтобы получать уведомления каждый раз, когда появляются новые статьи. Facebook

1- Обзор

На самом деле, вы часто работаете с файлами и папками в системе, операции здесь включают добавление, удаление, переименование. Java дает вам два класса, чтобы сделать это:

Java.io.File класс представляет файл (file) или папку (directory) системы, он введен в Java, из версии 1.0

Версия 7.0, Java дополняет java.nio.file.Files класс, что позволяет легко манипулировать файлами и папками, все методы этого класса являются статическими и естественными (static and nature)

В этой статье я только говорю об использовании класса java.io.File, вы можете посмотреть больше про java.nio.file.Files по ссылке:

2- java.io.File

Java.io.File класс представляет файл или папку в системе, которая представляет путь (pathname). В следующем примере создается объект File представляющий путь в Windows, или Unix:

java.io.File может представлять собой путь (pathname), где этот путь может на самом деле не существовать в системе. Если существовует, то может быть в виде папки (directory) или файла (file).

Следующий простой пример создает объект File, который представляет собой путь, и проверяет его существование, записывает основную информацию, если путь на самом деле существует:




3- Создать каталог

Класс File содержит два метода для создания:

Метод Описание
public boolean mkdir() Создает папку данную путем. Заметьте, что папка создается только при существовании родительской папки.
public boolean mkdirs() Создает папку данную путем, включая родительскую папку если она не существует.


4- File Filter

Java.io.File класс предлагает несколько способов, чтобы получить список подфайлов и подкаталогов в каталоге. И использует FileFilter для фильтрации файлов

Возвращает массив объектов File, который представляет корневой каталог. В операционной системе Windows это диски (C:, D :, ..) в Unix это /

Возвращает массив объектов File, файлы и подпапки из текущей папки, и соотствествующий фильтру FilenameFilter на параметр.

Возвращает массив объектов File, файлы и подпапки из текущей папки, и соответствует с фильтром FilenameFilter на параметр


В следующем примере составляется список всех файлов и подпапок в непосредственной папке:


Простой пример ниже использует FileFilter, чтобы отфильтровать файлы в папке и имеющие расширенную часть"txt":

Методы проверки

Прежде чем мы перейдем к какому-либо коду или объяснению, позвольте мне сделать шаг назад и сосредоточиться на чем-то, что будет иметь важное значение не только для этого поста, но и для ряда постов в будущем. Мне важно знать несколько методов, которые обычно называются методами проверки. Методы проверки включают все те методы, которые используются для выполнения различных проверок перед вызовом действительного кода манипулирования файловой системой. Для удобства все они в классе java.nio.file.Files . Использование этих методов поможет вам предотвратить непредвиденное поведение вашего приложения. Поскольку эти методы действительно просты, я пропущу примеры, посвященные им, и вместо этого буду использовать их в следующих примерах.

Методы проверки
Название метода Описание
exists(Path path, LinkOption. options) Проверяет, существует ли файл.
isExecutable(Path path) Проверяет, является ли файл исполняемым.
isHidden(Path path) Сообщает, считается ли файл скрытым.
isReadable(Path path) Проверяет, доступен ли файл для чтения.
isRegularFile(Path path, LinkOption. options) Проверяет, является ли файл обычным файлом с непрозрачным содержимым.
isSameFile(Path path, Path path2) Проверяет, находятся ли два пути в одном и том же файле.
isWritable(Path path) Проверяет, доступен ли файл для записи.
notExists(Path path, LinkOption. options) Проверяет, не существует ли файл, расположенный по этому пути.

Создание нового каталога

Одним из наиболее важных применений класса Files является создание новых каталогов с использованием метода createDirectory . Создание каталога довольно простой и понятный процесс, поэтому объяснять особо нечего. Как обычно, всегда полезно использовать метод проверки, exists классе Files для обеспечения возможности создания каталога с заданным путем, а также для предотвращения исключения FileAlreadyExistsException . Вся ситуация представлена ​​в следующем фрагменте кода:

Читайте также: