Создать каталог в Java
В этом посте будет обсуждаться, как создать каталог в Java, включая все несуществующие родительские каталоги.
1. Использование File#mkdirs() метод
Стандартным решением для создания каталога является использование mkdir() метод из File учебный класс. Возвращает true, если каталог создан; ложно в противном случае. Вызов этого метода будет выглядеть следующим образом:
import java . io . File ;
public class Main <
public static void main ( String [ ] args ) <
File directory = new File ( "/path/dir" ) ;
if ( directory . mkdir ( ) ) <
System . out . println ( "Directory created successfully" ) ;
Обратите внимание, что mkdir() метод полезен для создания одного каталога. Если вы хотите создать иерархию папок, вы должны использовать mkdirs() метод вместо этого. Он создает каталог, названный абстрактным путем, включая любые несуществующие родительские каталоги.
Например, следующий код создает родительский каталог с именем path (если не существует), за которым следует его подкаталог dir .
Как создать папку на диске java
Класс File, определенный в пакете java.io, не работает напрямую с потоками. Его задачей является управление информацией о файлах и каталогах. Хотя на уровне операционной системы файлы и каталоги отличаются, но в Java они описываются одним классом File.
В зависимости от того, что должен представлять объект File — файл или каталог, мы можем использовать один из конструкторов для создания объекта:
File(String путь_к_каталогу) File(String путь_к_каталогу, String имя_файла) File(File каталог, String имя_файла)
// создаем объект File для каталога File dir1 = new File("C://SomeDir"); // создаем объекты для файлов, которые находятся в каталоге File file1 = new File("C://SomeDir", "Hello.txt"); File file2 = new File(dir1, "Hello2.txt");
Класс File имеет ряд методов, которые позволяют управлять файлами и каталогами. Рассмотрим некоторые из них:
- boolean createNewFile() : создает новый файл по пути, который передан в конструктор. В случае удачного создания возвращает true, иначе false
- boolean delete() : удаляет каталог или файл по пути, который передан в конструктор. При удачном удалении возвращает true.
- boolean exists() : проверяет, существует ли по указанному в конструкторе пути файл или каталог. И если файл или каталог существует, то возвращает true, иначе возвращает false
- String getAbsolutePath() : возвращает абсолютный путь для пути, переданного в конструктор объекта
- String getName() : возвращает краткое имя файла или каталога
- String getParent() : возвращает имя родительского каталога
- boolean isDirectory() : возвращает значение true, если по указанному пути располагается каталог
- boolean isFile() : возвращает значение true, если по указанному пути находится файл
- boolean isHidden() : возвращает значение true, если каталог или файл являются скрытыми
- long length() : возвращает размер файла в байтах
- long lastModified() : возвращает время последнего изменения файла или каталога. Значение представляет количество миллисекунд, прошедших с начала эпохи Unix
- String[] list() : возвращает массив файлов и подкаталогов, которые находятся в определенном каталоге
- File[] listFiles() : возвращает массив файлов и подкаталогов, которые находятся в определенном каталоге
- boolean mkdir() : создает новый каталог и при удачном создании возвращает значение true
- boolean renameTo(File dest) : переименовывает файл или каталог
Работа с каталогами
Если объект File представляет каталог, то его метод isDirectory() возвращает true . И поэтому мы можем получить его содержимое — вложенные подкаталоги и файлы с помощью методов list() и listFiles() . Получим все подкаталоги и файлы в определенном каталоге:
import java.io.File; public class Program < public static void main(String[] args) < // определяем объект для каталога File dir = new File("C://SomeDir"); // если объект представляет каталог if(dir.isDirectory()) < // получаем все вложенные объекты в каталоге for(File item : dir.listFiles())< if(item.isDirectory())< System.out.println(item.getName() + " \t folder"); >else < System.out.println(item.getName() + "\t file"); >> > > >
Теперь выполним еще ряд операций с каталогами, как удаление, переименование и создание:
import java.io.File; public class Program < public static void main(String[] args) < // определяем объект для каталога File dir = new File("C://SomeDir//NewDir"); boolean created = dir.mkdir(); if(created) System.out.println("Folder has been created"); // переименуем каталог File newDir = new File("C://SomeDir//NewDirRenamed"); dir.renameTo(newDir); // удалим каталог boolean deleted = newDir.delete(); if(deleted) System.out.println("Folder has been deleted"); >>
Работа с файлами
Работа с файлами аналогична работе с каталога. Например, получим данные по одному из файлов и создадим еще один файл:
import java.io.File; import java.io.IOException; public class Program < public static void main(String[] args) < // определяем объект для каталога File myFile = new File("C://SomeDir//notes.txt"); System.out.println("File name: " + myFile.getName()); System.out.println("Parent folder: " + myFile.getParent()); if(myFile.exists()) System.out.println("File exists"); else System.out.println("File not found"); System.out.println("File size: " + myFile.length()); if(myFile.canRead()) System.out.println("File can be read"); else System.out.println("File can not be read"); if(myFile.canWrite()) System.out.println("File can be written"); else System.out.println("File can not be written"); // создадим новый файл File newFile = new File("C://SomeDir//MyFile"); try < boolean created = newFile.createNewFile(); if(created) System.out.println("File has been created"); >catch(IOException ex) < System.out.println(ex.getMessage()); >> >
При создании нового файла метод createNewFile() в случае неудачи выбрасывает исключение IOException , поэтому нам надо его отлавливать, например, в блоке try. catch, как делается в примере выше.
Как сделать, чтобы программа на java сканировала содержимое папки в гугл диске и открывало бы нужную папку?
Всем здравствуйте! Я полный новичок в java и я хотел сделать «приложение», которое будет анализировать наличие гугл таблицы в папке, а при их наличии их открывать. Так как я тупенький, я так и не понял, как это делать, перелазил много источников, но мне это не помогло. Если поможете буду рад, а если еще и объясните, как вы это сделали, то буду несказанно благодарен. Здесь прикреплена фотография моей «проблемы».
- Вопрос задан более двух лет назад
- 187 просмотров
Комментировать
Решения вопроса 1

Орхан Гасанлы @azerphoenix Куратор тега Java
Java Software Engineer
Добрый день!
Было бы неплохо уточнить хотите ли вы написать приложение с GUI или просто cli приложение.
Если GUI — можно использовать JavaFX, а если cli, то например, jcommander
Работа с Google Drive осуществляется через API.
Конечно же вам нужно создать приложение в Google Console и добавить полученный api key или service key в ваше приложение.
https://developers.google.com/drive/api/v3/quickst.
приложение которое будет анализировать наличие гугл таблицы в папке, а при их наличии их открывать
Вот, тут написано, как осуществить поиск:
https://developers.google.com/drive/api/v3/search-files
Необходимо произвести поиск по MIME-type и выбрать только таблицы и отобразить список всех найденных файлов.
А дальше например. по нажатию на названии файла скачать его используя:
https://developers.google.com/drive/api/v3/manage-.
Если вкратце, то как-то так. Изучите Java, а потом изучите API Google Drive
Создание каталога в Java
В Java существует несколько способов создания каталогов: с помощью методов File.mkdir() и File.mkdirs() .
1. Для создания одного каталога предназначен метод mkdir() :
new File("C:\Directory").mkdir();
2. Для создания каталога, а также всех родительских каталогов, предназначен метод mkdirs() :
new File("C:\Directory\SubDirectory1\SubDirectory2").mkdirs();
Оба эти метода возвращают булево значение: true если каталог (во втором случае — со всеми родительскими каталогами) создан успешно и false при возникновении проблем.
Пример
Классический пример создания каталогов в Java: проверить, существует ли каталог и если нет — создать его.
package ru.j4web.examples.java.io; import java.io.File; public class CreateDirectoryExample < private static final String DIR1 = "c:\Projects\J4Web.Ru\Src\" + "JavaIO\CreateDirectoryExample\Dir1"; private static final String DIR2 = "c:\Projects\J4Web.Ru\Src\" + "JavaIO\CreateDirectoryExample\Dir2\Dir3\Dir4\Dir5"; public static void main(String[] args) < final File dir1 = new File(DIR1); if(!dir1.exists()) < if(dir1.mkdir()) < System.out.println("Каталог " + dir1.getAbsolutePath() + " успешно создан."); >else < System.out.println("Каталог " + dir1.getAbsolutePath() + " создвть не удалось."); >> else < System.out.println("Каталог " + dir1.getAbsolutePath() + " уже существует."); >final File dir2 = new File(DIR2); if(!dir2.exists()) < if(dir2.mkdirs()) < System.out.println("Каталог " + dir2.getAbsolutePath() + " успешно создан."); >else < System.out.println("Каталог " + dir2.getAbsolutePath() + " создвть не удалось."); >> else < System.out.println("Каталог " + dir2.getAbsolutePath() + " уже существует."); >> >
