1. На вход метода main подаются два параметра.
Первый - path - путь к директории, второй - resultFileAbsolutePath - имя (полный путь) существующего файла, который будет содержать результат.
2. Переименовать resultFileAbsolutePath в 'allFilesContent.txt' (используй метод FileUtils.renameFile, и, если понадобится, FileUtils.isExist).
Проход по дереву файлов
- 28
- Недоступна
Комментарии (434)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий вы должны авторизоваться
Евгения 22 уровень, Минск
позавчера, 17:28
Битва с валидатором не на жизнь а насмерть))) я так до конца и разобралась, что он хотел)))
0
Алексей Петрик 22 уровень, Комсомольск-на-Амуре
позавчера, 07:35
Для хранения нужных файлов который <= 50, можно использовать TreeMap, автоматом отсортирует так как нужно
0
mbesurich Android Developer в Й1
26 февраля, 09:13
Расскажите, пожалуйста, как у вас получается решать такие задачи, если в лекциях до этого не раскрывалась тема SimpleFileVisitor? Как вы до него догадались? Гуглили или подсмотрели правильное решение?
0
Anonymous #2491313 27 уровень
23 февраля, 18:51
Валидатор такой валидатор.
Среднее количество попыток 7.9 ).
+1
Anonymous #2489173 23 уровень
21 февраля, 05:41
11 попыток, потому что сортировал файлы по убыванию %)
0
Алексей 25 уровень, Зима
18 февраля, 15:11
Коллеги! Подскажите пожалуйста алгоритм, как вы отсортировали файлы и выполнили требование пункта: 3.1. Отсортировать их по имени файла в возрастающем порядке, путь не учитывать при сортировке.
0
Алексей 25 уровень, Зима
19 февраля, 02:05
Сам и отвечу. Написал компоратор для сортировки
0
tremb 32 уровень, Москва
17 февраля, 13:38
6614
Умудрился сделать 8 попыток :)
" Все файлы имеют расширение txt." можно не проверять
0
tbcarus 33 уровень, Москва
13 февраля, 08:24
Проверка прошла со второго раза.
В первый раз сделал слишком много проверок для переименования файла: проверял на несуществование выходного файла перед копированием; если он существовал, то удалял, после чего копировал. Но этого всего не нужно.
Сделал через очередь и Map<String, File>, делать через Map, конечно, очевидная ошибка, но валидатор пропускает - если во вложенных папках файлы с одинаковым названием, то в map они просто заменяются, что неправильно.
1. Сначала пробежал по всем папкам и подпапкам в цикле while (!stack.isEmpty()), если файл - это дирректория, то в очередь её, если файл <= 50 Б (Files.size(Path), то в map его.
2. Сортировка листа ключей
3. Чтение через Files.readAllBytes. Запись в файл, запись fout.write('\n');
4. Все пункты обёрнуты в try с ресурсами FileOutputStream.
0
Дмитрий Чесноков 31 уровень, Санкт-Петербург
4 февраля, 12:05
Не проходило по 1, 2 и 4 пунктам из-за того, что вместо
указал . Хотя данный вариант также правильный.
Так как начал решение со второй задачи, то алгоритм прохода по директориям взял от туда (использовал очередь). Файлы нужного размера записывал в список, сортировка с помощью компаратора. Для записи и чтения использовал FileWriter и FileReader соответственно. 0
Сергей 23 уровень, Мурманск
2 февраля, 06:48
Для тех кто решает с помощью Files.walkFileTree() и у кого не проходит условие №2 и №4 - Files.walkFileTree() надо обернуть в try-with-resours потока на запись
0