информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Атака на InternetСетевые кракеры и правда о деле Левина
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Бэкдор в xz/liblzma, предназначенный... 
 Три миллиона электронных замков... 
 Doom на газонокосилках 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / software
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
Ищу программу, кодовые слова - zip, rename, Unix 21.06.03 16:42  
Автор: Ktirf <Æ Rusakov> Статус: Elderman
<"чистая" ссылка> <обсуждение закрыто>
Подробнее: требуется программа, работающая в командной строке, на C/C++ (Perl, Python и прочая не предлагать), которая умеет переименовывать файлы внутри архива .zip. Желательна, но не обязательна поддержка расширенного формата Zip64.
Если кто-то что-нибудь подобное видел, откликнитесь. Как ни странно, найти такую в сущности простую вещь оказалось проблемой. Да, важно: лицензия должна разрешать использование в коммерческих проектах (внимание тем, кто в танке: GPL подходит).
Нашел - не программу, библиотеку, но тоже хорошо. 25.06.03 15:31  
Автор: Ktirf <Æ Rusakov> Статус: Elderman
Отредактировано 25.06.03 15:32  Количество правок: 1
<"чистая" ссылка> <обсуждение закрыто>
Даже две: zziplib и zipios++. Обе имеют лицензию LGPL, первая - C интерфейс, вторая - C++. В общем, если кому еще пригодится, оставляю здесь линки. Всем спасибо за поддержку и обсуждение.

zziplib
zipios++
а такой метод не подойдет? 23.06.03 15:16  
Автор: ZaDNiCa <indeed ZaDNiCa> Статус: Elderman
<"чистая" ссылка> <обсуждение закрыто>
распаковать файл, удалить его из архива и добавить под другим именем? как это к примеру делает FAR manager
тем более что именно то что ты хочешь вряди найдешь
В том-то все и дело, что 23.06.03 15:49  
Автор: Ktirf <Æ Rusakov> Статус: Elderman
<"чистая" ссылка> <обсуждение закрыто>
если не дай Бог непожатый текстовый файл окажется размером в несколько гигабайт (в моей задаче может такое произойти), то слишком много места и времени потребуется для перепаковки. А самое главное - это и не нужно.
Думаю zlib должен уметь такое делать 21.06.03 22:15  
Автор: amirul <Serge> Статус: The Elderman
<"чистая" ссылка> <обсуждение закрыто>
> Подробнее: требуется программа, работающая в командной
> строке, на C/C++ (Perl, Python и прочая не предлагать),
Для того чтоб сделать программу для командной строки, придется написать небольшую обертку - вызов функций zlib-ы.
Уже смотрел. zlib вообще не знает о файловой системе внутри архива. 21.06.03 23:47  
Автор: Ktirf <Æ Rusakov> Статус: Elderman
<"чистая" ссылка> <обсуждение закрыто>
> > Подробнее: требуется программа, работающая в командной
> > строке, на C/C++ (Perl, Python и прочая не
> предлагать),
> Для того чтоб сделать программу для командной строки,
> придется написать небольшую обертку - вызов функций zlib-ы.
Обертка выйдет, увы, не небольшая, и самое смешное, что как раз возможностей zlib там и не понадобится. Потому что все дерево файлов лежит отнюдь неупакованным, упаковывается только их содержимое.
В общем, я уже сходил на сайт PKWare и взял там описание формата ZIP... Теперь пишу прогу, которая аккуратно хакает архивы, чтобы переименовать содержащиеся там файлы и не повредить всего остального. Похоже это проще всего.
это подходит только в том случае если по длине новое имя меньше или равно длине старого 23.06.03 15:22  
Автор: ZaDNiCa <indeed ZaDNiCa> Статус: Elderman
<"чистая" ссылка> <обсуждение закрыто>
иначе ничего не получится
Уже получилось :-D 23.06.03 15:47  
Автор: Ktirf <Æ Rusakov> Статус: Elderman
Отредактировано 23.06.03 15:50  Количество правок: 1
<"чистая" ссылка> <обсуждение закрыто>
Я успешно сменил имя из одного символа на имя из семнадцати - слегка подкорректировав некоторые поля, конечно. UNIXовый zip подлога не заметил. Осталось реализовать алгоритм.
Не понял немного 21.06.03 20:31  
Автор: NKritsky <Nickolay A. Kritsky> Статус: Elderman
<"чистая" ссылка> <обсуждение закрыто>
> Подробнее: требуется программа, работающая в командной
> строке, на C/C++ (Perl, Python и прочая не предлагать),
> которая умеет переименовывать файлы внутри архива .zip.
> Желательна, но не обязательна поддержка расширенного
> формата Zip64.
По поводу С/С++ - она тебе в сорцах что-ли нужна?

> Если кто-то что-нибудь подобное видел, откликнитесь. Как ни
> странно, найти такую в сущности простую вещь оказалось
> проблемой.
А заказать? Вон есть job - запости там.
Хотя может я чего не понял...
Не понял немного 21.06.03 23:44  
Автор: Ktirf <Æ Rusakov> Статус: Elderman
<"чистая" ссылка> <обсуждение закрыто>
> По поводу С/С++ - она тебе в сорцах что-ли нужна?
Эту прогу нужно включить в проект, который будет собираться на пяти платформах. Можно, конечно, держать пять бинарников, но некрасиво это как-то.

> А заказать? Вон есть job - запости там.
> Хотя может я чего не понял...
Заказать я сам себе могу :) Уже писать начал даже :) Просто надеялся, что до меня такую софтину уже придумали. Ну что ж, одним проектом на SourceForge станет больше...
А что за проект (извиняюсь за любопытство), если не секрет? 24.06.03 10:31  
Автор: DPP <Dmitry P. Pimenov> Статус: The Elderman
<"чистая" ссылка> <обсуждение закрыто>
Система поиска по гетерогенной совокупности банков данных для биологов 24.06.03 13:10  
Автор: Ktirf <Æ Rusakov> Статус: Elderman
<"чистая" ссылка> <обсуждение закрыто>
Я не очень заумно выразился? :)
Да не, не очень. 24.06.03 15:48  
Автор: DPP <Dmitry P. Pimenov> Статус: The Elderman
<"чистая" ссылка> <обсуждение закрыто>
> Я не очень заумно выразился? :)
Теперь непонятно другое - зачем в программе поиска по базам предусматривать переименовывание файлов в архивах?
Для предварительной упаковки файла с результатами поиска на серверной стороне. 24.06.03 20:26  
Автор: Ktirf <Æ Rusakov> Статус: Elderman
<"чистая" ссылка> <обсуждение закрыто>
На самом деле задача выросла очень неожиданно. У UNIX zip'а есть возможность в качестве упаковываемого файла принимать стандартный вход. Все бы ничего, вот только внутри архива этот файл оказывается с именем "-". Естественно, когда всякие виндузятники начинают смотреть это WinZIPом или даже просто хревым проводником, этот факт вылезает на поверхность. Вот и пришлось придумывать, как с этим справиться. Создание временного файла в общем случае нерационально, проще слегка подпортить тот архив, который потоком же выходит из zip'а.
Только свой упаковщик писать придется. 25.06.03 10:23  
Автор: DPP <Dmitry P. Pimenov> Статус: The Elderman
Отредактировано 25.06.03 10:26  Количество правок: 1
<"чистая" ссылка> <обсуждение закрыто>
> На самом деле задача выросла очень неожиданно. У UNIX zip'а
> есть возможность в качестве упаковываемого файла принимать
> стандартный вход. Все бы ничего, вот только внутри архива
> этот файл оказывается с именем "-". Естественно, когда
> всякие виндузятники начинают смотреть это WinZIPом или даже
> просто хревым проводником, этот факт вылезает на
> поверхность. Вот и пришлось придумывать, как с этим
> справиться. Создание временного файла в общем случае
> нерационально, проще слегка подпортить тот архив, который
> потоком же выходит из zip'а.

используя ZIP алгоритм, но формат свой. Глупо вставлять поддержку разных версий программ зип-упаковщиков, особенно версии, которые появятся в будущем.
А с Юниксом своя песня: на сколько я знаю, упаковщики на большинстве платформ создают архив структуры типа [имя файла, зазипованные данные]. Когда я начал знакомится с юниксами, я сначала был удивлен, что zip не может зазиповать несколько файлов, как в ДОСе. Зипует он один файл дописывая расширение (.z) или в новый файл, если в командной строке указать. При зиповке нескольких файлов их надо сначала затарить, а чтобы обработать дерево каталогов и файлы с нужным типом/атрибутами, их нужно было find'ом найти. получается один файл, он-то и зипуется, и в зип-файле название файла в явном виде не найти, и переименовать его не раззиповывая тоже.
Я думаю, что обойдется :) 25.06.03 14:30  
Автор: Ktirf <Æ Rusakov> Статус: Elderman
<"чистая" ссылка> <обсуждение закрыто>
> используя ZIP алгоритм, но формат свой. Глупо вставлять
> поддержку разных версий программ зип-упаковщиков, особенно
> версии, которые появятся в будущем.
Дело в том, что на все зип-упаковщики (не путать с z-упаковщиками) существует, как ни удивительно, ровно один формат, который описан на сайте PKWare. Именно этот формат используется и в чистом zip (который по умолчанию есть на большинстве Унихов и который есть практически для всего, для чего есть компилятор C). и в pkzip (народ, помнящий DOS, прекрасно знает этот архиватор - курилка жив и здравствует, причем уже и под Windows с Linux'ом), и в WinZip, и во многих других. Этот формат используется WinRARом и проводником WindowsXP для работы с zip-файлами. Короче говоря, это стандарт де-факто.

> А с Юниксом своя песня: на сколько я знаю, упаковщики на
> большинстве платформ создают архив структуры типа [имя
> файла, зазипованные данные]. Когда я начал знакомится с
> юниксами, я сначала был удивлен, что zip не может
> зазиповать несколько файлов, как в ДОСе. Зипует он один
> файл дописывая расширение (.z) или в новый файл, если в
> командной строке указать.
файлы .Z делает другая команда, которая называется compress. Она, как и gzip и compact, действительно способна упаковывать лишь ровно один файл, без хранения дерева каталогов и даже имени файла. zip и его ближайшие родственники (к коим gzip не относится), хранит внутри архива некую упрощенную файловую систему. Вообще со стороны его авторов это героизм, потому что zip переносим между платформами, в частности, мне ничто не мешает упаковать дерево на Unix, а потом перенести его на Амигу или на Windows.

> получается один файл, он-то и зипуется, и в
> зип-файле название файла в явном виде не найти, и
> переименовать его не раззиповывая тоже.
Опять-таки не путаем .z/.Z/.gz файлы и .zip-файлы. В них используются разные алгоритмы упаковки и формат у них отличается.
Ну если в проекте будет предусмотрена работа только с .zip без .z, то действительно может обойдется :) 25.06.03 14:54  
Автор: DPP <Dmitry P. Pimenov> Статус: The Elderman
<"чистая" ссылка> <обсуждение закрыто>
В .z проблемы переименования файла внутри архива нет в принципе :) 25.06.03 14:55  
Автор: Ktirf <Æ Rusakov> Статус: Elderman
<"чистая" ссылка> <обсуждение закрыто>
:-))) Насколько я понял, имелся в виду проект на sourceforge, связанный с zip-ами 24.06.03 15:44  
Автор: amirul <Serge> Статус: The Elderman
<"чистая" ссылка> <обсуждение закрыто>
Ты ж вроде намекал, что свой проект ты там открыл
А, сорри, я неправильно понял :) 24.06.03 20:21  
Автор: Ktirf <Æ Rusakov> Статус: Elderman
Отредактировано 24.06.03 20:30  Количество правок: 1
<"чистая" ссылка> <обсуждение закрыто>
Пока еще не открыл, но может быть открою скоро-недолго. Надо только с лицензиями разобраться...
А в целом да, проект будет посвящен для начала одной ма-аленькой утилитке на Си, которая только и умеет что файлы внутри зипа переименовывать :) Ну а дальше время покажет. То же, что я сказал - это сугубо коммерческий закрытый проект, в котором эта утилитка может быть будет использоваться.
1




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2024 Dmitry Leonov   Page build time: 1 s   Design: Vadim Derkach