Archiver (10)

  • 14
  • Недоступна
Пришло время отрефакторить класс ZipFileManager. В методе createZip есть код, который нам также понадобится в методах, которые будут добавлять или удалять файл в архив, распаковывать его и т.д. Эти методы мы будем реализовывать позже, но уже сейчас можем вынести общие части кода в отдельные методы.
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (72)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий вы должны авторизоваться
Дмитрий К.31 уровень, Иркутск
27 февраля, 08:11
задачка вынос мозга валидатору ... 13 попыток так делать не надо
try(InputStream in = Files.newInputStream(Paths.get(filePath.toString()+"\\"+fileName.toString())))
а так надо
try(InputStream in = Files.newInputStream(filePath.resolve(fileName)))
Сергей32 уровень
14 февраля, 16:33
Знал бы про Files.createDirectories() не пришлось бы метод на рекурсивное создание всех отсутствующих директорий писать, так только время зря потратил(
Дмитрий К.31 уровень, Иркутск
27 февраля, 07:10
первый урок курса Collectios рассказывает нам что есть Files.createDirectories() =) https://javarush.ru/quests/lectures/questcollections.level01.lecture03
Vitaly Khan35 уровень
11 января, 11:48
как и у многих других, у меня не проходил последний пункт. в комментариях нашел несколько возможных причин, ни одна не оказалась моим случаем. у меня причиной было то, что я вначале открывал поток ZipOutputStream, а потом уже совершал внутри все операции, включая проверку на наличие директории. а надо это проверку делать до. очень долго ошибку искал(((
Ольга29 уровень, Санкт-Петербург
8 февраля, 18:29
Спасибо! Та же ерунда! Уже и не знала, что не так делаю)
Эльвира30 уровень, Санкт-Петербург
4 января, 19:50
Куча попыток из-за того, что до этого прошло: ZipEntry entry = new ZipEntry(fileName.getFileName().toString()); а правильно: ZipEntry entry = new ZipEntry(fileName.toString());
Oleg Martynov29 уровень, Санкт-Петербург
2 марта, 23:47
Спасибо, вы сэкономили мне кучу нервов :)
Володимир Штаба31 уровень, Киев
29 ноября 2018, 02:29
Адски тяжелое условие в плане чтения и понимая чего от тебя хотят , и в такой кучу очень тяжело не напартачить так что с 3 попытки только . Я прокололся на вызове элементов из списка который мы получаем из файл менеджера , там соурс передвать нужно в первозданном виде
pr1zrak35 уровень
21 ноября 2018, 05:29
Объясните пожалуйста, кто-нибудь как это все работает. Привожу пример. на диске C: создал папку test, внутри папки ничего нет. Сделал тестовый класс, в методе майн с консоли считываю путь в переменную path1. 1. Ввожу "c:\test\test2" Такой директории у меня нет, есть только c:\test Создаю файл File file = path1.toFile(); file.exists() выводит фолс, ок, понятно, логично. Но не понятно, что мне сейчас создавать, директорию или файл? Как мне это узнать? file.isDirectory выводит false, file.isFile выводит false. Помогите разобраться. Как мне понять, что мне создать, директорию или файл, если я ввел не существующую директорию.
Вадим Киров41 уровень, Белгород
16 ноября 2018, 20:04
У кого проблемы с последним пунктом - обратите внимание на ZipEntry zipe = new ZipEntry(fileName.toString());. типичная ошибка ZipEntry zipe = new ZipEntry(fileName.getFileName().toString()); - как следствие - вложенные папки "летят" не туда при архивации
Rihard198533 уровень
11 сентября 2018, 11:00
Нелья было про CopyData по раньше написать, чтобы два раза в одном и том же методе не ковыряться
Стецко Максим35 уровень
4 сентября 2018, 19:41
В JAVA 9 появился метод readAllBytes() у InputStream, не надо его использовать в этой задаче. В плагине просто при нажатие проверки ничего выдавать не будет).
Павел41 уровень, Санкт-Петербург
14 августа 2018, 16:37
Обидно сделать всё правильно там, где у других проблемы и запороть 3 попытки из-за невнимательности: проверял существование директории на source.getParent() вместо zipFile.getParent() :)