Форум программистов, компьютерный форум, киберфорум
Java для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 13.10.2021
Сообщений: 1

Иерархия каталога файлов JAVA

13.10.2021, 16:19. Показов 1624. Ответов 0

Студворк — интернет-сервис помощи студентам
Всем здравствуйте.

Мне выдали такое задание

Описание:
Построить строковое представление иерархии каталогов по заданному пути

Задание:
Реализовать метод tree. Входным параметром является путь.

Если заданный путь ссылается на файл, верните строку с его именем и размером:

some-file.txt 128 bytes

Если заданный путь ссылается на каталог, верните строку с его именем, общим размером и полной иерархией:

some-dir 100 bytes
├─ some-inner-dir 50 bytes
│ ├─ some-file.txt 20 bytes
│ └─ some-other-file.txt 30 bytes
└─ some-one-more-file.txt 50 bytes

Вычислите размер каталога как сумму всего его содержимого.
Сортировка содержимого осуществляется следующим образом:
каталоги идут первыми,
каталоги и файлы сортируются в лексикографическом порядке (без учета регистра).

Я неделю ломаю голову как сделать.
Написал около 5 рабочих программ (2 наиболее удачные положил в архив)

В общем проблема в следующем. У меня получается вывести иерархию, но я не могу понять как мне выводить сначала подкаталоги (и файлы в них), а потом все остальные файлы в каталоге (выделил это условие в тексте задачи

Пишу потому что идеи совсем кончились.

Заранее спасибо

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
package com.company;
 
import java.io.IOException;
import java.nio.file.FileVisitResult;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.SimpleFileVisitor;
import java.nio.file.attribute.BasicFileAttributes;
 
import static java.nio.file.FileVisitResult.CONTINUE;
 
public class PrintFiles
        extends SimpleFileVisitor<Path> {
 
    // Print information about
    // each type of file.
    @Override
    public FileVisitResult visitFile(Path file,
                                     BasicFileAttributes attr) {
 
        if(Files.isRegularFile(file))
            System.out.println("    ├─" +file.getFileName() +"(" + file.toFile().length() + "bytes)");
        return FileVisitResult.CONTINUE;
    }
 
 
 
    @Override
    public FileVisitResult preVisitDirectory(Path path,
                                             BasicFileAttributes attr) {
        if(Files.isDirectory(path) )
            System.out.println("├─" + path.getFileName());
 
 
 
 
        return FileVisitResult.CONTINUE;
    }
    @Override
    public FileVisitResult postVisitDirectory(Path path,
                                              IOException exc) {
 
 
        return CONTINUE;
    }
 
 
}
 
 
package com.company;
 
import java.io.IOException;
import java.nio.file.*;
import java.nio.file.attribute.BasicFileAttributes;
 
import static java.nio.file.FileVisitResult.*;
 
public class Main {
    public static void main(String[] args) {
 
        Path pathSource = Paths.get("D:\\[sharewood.biz] [Udemy] HTML5, CSS3, FlexBox верстка сайтов с нуля (2019)");
        try {
            Files.walkFileTree(pathSource, new PrintFiles());
        } catch (IOException e) {
            e.printStackTrace();
        }
 
    }
}
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
package com.company;
 
import java.io.File;
 
public class Main {
 
    public static void main(String[] args)
    {
        listDirectory(new File("D:\\Darksiders - Wrath of War"), 0);
    }
 
    private static void listDirectory(File directory, int level)
    {
        for(File file : directory.listFiles())
        {
            for(int i = 0; i < level; i++)
                System.out.print('\t');
            System.out.println(file.getName());
            if(file.isDirectory())
                listDirectory(file, level + 1);
        }
    }
}
Вложения, ожидающие проверки
Тип файла: rar попытки.rar
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
13.10.2021, 16:19
Ответы с готовыми решениями:

Java иерархия классов
Доброго времени суток. Недавно начал изучать Java и работу с классами. И вот возник вопрос у меня: Допустим, у меня есть n...

Иерархия классов в Java
Здравствуйте. Начал изучение java с простеньких задач и дошел до иерархии классов. Вот что я хотел сделать: -Не менее 10 классов. ...

Написать программу, которая обеспечивает:начальное формирование каталога файлов;вывод каталога файлов;удаление файлов...
Уважаемые хакеры!Прошу вашей помощи!Я в СИ не особо шарю.((( А на днях уже сдавать.Очень рассчитываю на любую вашу помощь. Вот задача. ...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
13.10.2021, 16:19
Помогаю со студенческими работами здесь

Копирование каталога, если несколько файлов из этого каталога заняты процессом
Подскажите пожалуйста как можно скопировать каталог в котором несколько файлов заняты процессом, то бишь они не копируются... в общем мне...

Вывести на экран содержимое каталога, размер файлов каталога, и создать новый файл
Ребята помогите создать программу на ассемблере , в которой нужно : вывести на экран содержимое каталога, размер фалов каталога, и создать...

Создание каталога, копирование файлов, архивирование содержимого каталога, запись результата работы в файл
Написать командный файл, выполняющий следующие действия: создать каталог с названием dir&lt;дата&gt;, где &lt;дата&gt; - дата, которая...

Создание каталога, копирование файлов, архивирование содержимого каталога, запись результата работы в файл
Написать командный файл, выполняющий следующие действия: 1)создать каталог с названием dir&lt;дата&gt;, где &lt;дата&gt; - дата, которая...

Периодическое создание файлов в каталоге и удаление некоторых файлов из каталога
Доброго дня! Помогите написать такой сценарий: периодическое создание файлов в каталоге и удаление некоторых файлов из каталога.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 15.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru