Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> добавление файла в архив 
V
    Опции темы
Pawl
Дата 1.4.2013, 13:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 649
Регистрация: 22.4.2008
Где: Витебск

Репутация: 7
Всего: 28



Доброго времени суток!
Есть ли библиотека, имеющая простой функционал для осуществления сабжа?
А то стандартными средствами для этого приходится сначала извлекать весь архив во временную папку, добавлять туда нужный файл и перепаковывать архив заново.
Спасибо за инфу!


--------------------
В действительности всё совсем не так, как на самом деле
PM MAIL   Вверх
Stolzen
Дата 1.4.2013, 14:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1041
Регистрация: 17.10.2005

Репутация: 23
Всего: 48



Я, честно говоря, всегда думал, что архиваторы именно так и работают - сначала распаковывают во временную папку, а потом перепаковывают. 


--------------------
datatalks.ru - анализ данных, статистика, машинное обучение
PM MAIL WWW   Вверх
batigoal
Дата 1.4.2013, 16:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 24
Всего: 151



Ммм, а разве нельзя читать из ZipInputStream и сразу писать новый ZipOutputStream? Это тоже решение с промежуточной распаковкой, но в явном виде временные файлы созданы не будут.


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
Amp
Дата 1.4.2013, 18:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 886
Регистрация: 17.2.2009

Репутация: 3
Всего: 17



Посмотри на TrueZIP. 

Цитата(Stolzen @  1.4.2013,  14:23 Найти цитируемый пост)
Я, честно говоря, всегда думал, что архиваторы именно так и работают - сначала распаковывают во временную папку, а потом перепаковывают.  

Структура zip-архива позволяет добавлять файлы, не перепаковывая архива целиком.
PM MAIL   Вверх
Pawl
Дата 2.4.2013, 09:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 649
Регистрация: 22.4.2008
Где: Витебск

Репутация: 7
Всего: 28



Цитата(batigoal @  1.4.2013,  16:28 Найти цитируемый пост)
Ммм, а разве нельзя читать из ZipInputStream и сразу писать новый ZipOutputStream? 

Можно попробовать, но я имел ввиду функционал "для ленивых" - что-то типа
Код

File zipFile = new File("archive.zip");
zipFile.add(newFile);



--------------------
В действительности всё совсем не так, как на самом деле
PM MAIL   Вверх
Pawl
Дата 2.4.2013, 18:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 649
Регистрация: 22.4.2008
Где: Витебск

Репутация: 7
Всего: 28



если использовать commons io и эту штуку, добавление требует в 8 строк кода:
Код

        File zipFile = new File(zipFileName);
        File dir = new File("D://temp");
        dir.mkdir();
        ZipUtil.unpack(zipFile, dir);
        File file = new File(fileName);
        FileUtils.copyFileToDirectory(file, dir);
        ZipUtil.pack(dir, zipFile);
        FileUtils.deleteDirectory(dir);

А вот код, в котором вовсе не применяется сторонних библиотек, тут как раз читается из ZipInputStream и сразу пишется в ZipOutputStream, без создания временных папок.
Что же, похоже, я сам ответил на свой вопрос и на сим тему закрываю.

Это сообщение отредактировал(а) Pawl - 2.4.2013, 18:51


--------------------
В действительности всё совсем не так, как на самом деле
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0463 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.