R0 CREW

Вопросика по архиваторам

Доброго времени суток.

Может кто есть более опытный в линуксах…

Собсвтенно, хочу узнать как мне лучше сделать следующие задачи. Использую консольные версии архиватор, т.е. сам архиватор я естсесвенно не пишу, только гуи часть хочу. Сами задачи:

  1. как добавить файл/папку в архив?
  2. как переименовать какой-то файл/папку в архиве?

Конечно, спору нет можно взять и все распоковать сделать все, что надо и обарно заархивировать, но вдруг архив будет очень большой или еще что-то…

Если соответствующих команд для используемых архиваторов нет в доках, то сделать это без переархивации нельзя.

А если надо делать переархиваюцию, то как лучше сделать?

А то куда-то временно распаковать на сколько я понял тоже не сильно круто. Где-то читал, что через именовые каналы будет хорошо, так ли?

С теоретической точки да, лучше. В идеале, ты мог бы параллельно вести распаковку “файла” и сразу же его запаковывать обратно. Минус, ты сможешь распаковывать только по одному файлу, так как если файлов будет больше, то они все склеятся в один поток, и ты не сможешь понять who is who? С практической точки зрения, это вряд ли получится, так как я сомневаюсь, что какой-либо архиватор разрешит читать и писать в какой-либо архив “одно временно”. Отсюда следует, что тебе нужно будет полностью прочитать всю инфу из pipe, прежде чем начать переархивацию/добавление измененного файла. В итоге, весь плюс от пайпа - пропадает. Да и не предназначены они для этого. ИМХО

Не вижу никаких проблем, чтобы распаковываться в любое место куда у тебя есть доступ (права). Главное не забывать удалять временные файлы.

PS: Лучше в место консольного взаимодействия, погуглить и найти библиотеки под каждый из поддерживаемых архиваторов.
PSS: GUI-архиваторы, умеют переименовывать файлы, причем, как мне кажется, не распаковывая файл (по крайней мере файлы в zip-архивах).

Посмотрю в Ark если что-то раскопаю, то могу сюда отписать, если кому-то будет интересно…

Судя по исходниками все таки там есть переархивация. =(

Вообще можешь распаковывать в папку /tmp и использовать ее по прямому назначению:-)

Ходят слухи, что там тоже место заканчивается.=(

А почему бы свой архиватор не написать? Или взять ZIP и распарсить? Я так понял ты своё приложение пишешь и тебе всё равно что там.

https://users.cs.jmu.edu/buchhofp/forensics/formats/pkzip.html
http://en.wikipedia.org/wiki/Zip_(file_format)

ЗЫ: Скучно, решил понекрофилить ))

Ну у нас тут есть специалист по сжатию данных )))