Проход по дереву файлов

  • 11
  • Недоступна
1. На вход метода main подаются два параметра. Первый - path - путь к директории, второй - resultFileAbsolutePath - имя файла, который будет содержать результат. 2. Для каждого файла в директории path и в ее всех вложенных поддиректориях выполнить следующее: 2.1. Если у файла длина в байтах больше 5
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (199)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий вы должны авторизоваться
Александр Орлов22 уровень, Орёл
позавчера, 07:55
Решил через рекурсию, без удаления файлов. Очень долго не мог понять, почему валидатор, ругается на потоки. Оказывается, я думал, что renameTo меняет имя файла, и можно подставить File oldFile в FileOutputStream, но оказывается нет. oldFile это oldFile и в поток надо ставить newFile. Зачем тогда renameTo? И ещё в ходе дебага обнаружил, что фактически файл создаётся только в момент открытия потока. И да, при переименовании постоянно пишет Can not rename file with name. Почему? Если в коде до переименования мы создаём File oldFile = new File(args[1]); Получается мы все действия только с объектами совершаем, а фактически в файловой системе ничего не создаётся?
Denis Filokhin22 уровень
6 июня, 08:42
Сделал, все работает, проверка - 4 ошибки!!1 1) Оказывается, нельзя использовать FileReader и FileWriter , а нужно FileInputStream и FileOutputStream. Ладно, сам дурак, говорили же что "поток". 2) Нельзя писать так: File newfile = new File(resultFileAbsolutePath.getParent() + "allFilesContent.txt" ); нужно писать так: String s = resultFileAbsolutePath.getParent(); File fileNew = new File(s + "/" + "allFilesContent.txt"); Иначе валидатор не принимает. Бред конечно. Итого 3 попытки...
Sasha Dmitrieva31 уровень, Москва
позавчера, 21:39
У меня программа нормально работала с выражением File newfile = new File(resultFileAbsolutePath.getParentFile(),"allFilesContent.txt"); но валидатор не пропускал. Плюсую коммент, минусую задачу. Дурацкий валидатор
Максим Тымковский22 уровень, Санкт-Петербург
2 июня, 10:54
Создал метод по обхода через рекурсию в "FileUtils". Пока не перенёс в Solution не принимала по третьему пункту...O_o Вам удалось ее решить с 48 попытки. Среднее количество попыток для этой задачи 8.3. Всего эту задачу решили 3823 учеников.
Андрей33 уровень
29 мая, 18:59
Может кому поможет. Долго тупил как поставить \n чтоб соблюсти требования условия. Делал через обычный OutputStream. Так вот:
outputStream.write(10);
Alexey Tarakanov35 уровень, Москва
21 мая, 03:17
Это просто жесть. 28 попыток чисто на том, что пытался по разному пройти 2 и 4 пункты. А они не проходили валю, тк в блоке outputstream я указал не File, а File.getAbsoluteFile(), т.е. путь. Хорошо вчитался в задание и подумал, что может есть для вали какая-то разница что я подаю - сам объект или полный путь этого объекта
Олег Мазурук26 уровень
28 апреля, 21:27
Может кому-то понадобится Как копировать файлы в Джава
Николай Захаров23 уровень, Москва
25 апреля, 15:13
Подскажите, братья и сестры, а дальше будет работа с каким-нибудь другими видами файлов, кроме .txt? Самому вперед заглядывать раньше времени не хочется, но может кто уже знает)
Николай Захаров23 уровень, Москва
25 апреля, 14:58
Хах, валидатор умудрился принять неправильно работающую версию кода
Николай Захаров23 уровень, Москва
25 апреля, 15:09
Ложная тревога. Это я глупенький - умудрился забыть, что ограничение на размер файла 50 байт, а не кбайт. В итоге файлы по 51-59 байт просто не пролезли, и я решил, что он кроме первого ничего не берет...) Вообще, крутая задача. Придумал свой метод обхода поддиректорий через рекурсию, научился работать с директориями и именами. Потенциально полезно)
Ненавижу 1С23 уровень, Санкт-Петербург
16 апреля, 19:54
Опишу свою проблему, может поможет кому-нибудь. Валидатор не пропускал по 3 пункту, хотя на тестовой все ок... Проблема в том, что я открывал файлики в обычном блокноте, который не воспринимал "\n" и все смешивалось в одну кучу... Нашел решение в инете... добавить "\r\n"........ И так как тестил я частями, то про этот пункт благополучно забыл.... Так вот. Если у кого - то не пропускает по 3 пункту и вы уже перешли к построковым тестам перед записью в файл, то посмотрите внимательно на свой код... Наличие "\r\n" - корень ваших бед))
13Black34 уровень, Москва
12 апреля, 10:05
С утра проснулся думаю сейчас задачку решу и буду завтракать. Время час дня, что то кушать хочется(