Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » FreeArc: бесплатный open-source архиватор - Часть 3

Модерирует : gyra, Maz

Widok (23-11-2010 11:37): Лимит страниц. Продолжаем здесь  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106

   

Widok



Moderator-Следопыт
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

FreeArc
бесплатный open-source архиватор для Windows и Linux,
сочетающий высокую степень сжатия и большой набор возможностей


Официальный сайт | Скриншоты | Лента новостей
Документация на консольную версию | Документация на GUI версию
Сообщество пользователей FreeArc | Вики | Трекер (рассылка по ошибкам)
Проект на SourceForge.net | SVN-репозиторий | Поддержка InnoSetup
Обсуждение на encode.ru (англоязычное)

Скачать последний релиз - FreeArc 0.666 от 20 мая 2010 г. Что нового: ускорение работы в 1.5-2 раза благодаря новой технологии многопоточного сжатия, распаковка архивов многих форматов используя технологии 7-zip, запуск файлов из архива, исправлены все проблемы интеграции с Explorer (подробнее)
 
Текущая альфа версия: 0.67 - загрузка | список исправлений | блог

FAQ по FreeArc

Подробное описание используемых алгоритмов
Почему он сжимает лучше и быстрее, чем 7-zip/rar...
Результаты тестов, подтверждающие его крутизну... | И немного о будущем...
Почему для использования 2+ гб памяти желательно установить 64-битную версию Windows
Планы дальнейшего развития
Что подразумевается под "интеграцией с Explorer"
Старая FreeArc wiki (включая описание формата архива)
Логотип - объявляется конкурс на иконки для FreeArc

Сторонние оболочки для работы с FreeArc:
  • wArc - простая и понятная программа управления архивами (требует .NET Framework 2.0)
  • PeaZip - менеджер архивов с поддержкой большого количества форматов, для Windows и Linux
     

    Родственные темы:
  • Inno Setup плюс внешние упаковщики - использование архивов FreeArc в инсталяторах
  • Пережатиe/Pекомпрессия/Oптимизация файлов для лучшего сжатия - "а как сжать ещё лучше?"
  • FreeArc и Unix - для альтернативно одарённых
     
    Другие архиваторы:
  • WinRAR
  • 7-zip

  • Всего записей: 24190 | Зарегистр. 07-04-2002 | Отправлено: 19:15 07-09-2009 | Исправлено: Bulat_Ziganshin, 18:34 26-07-2010
    Shegorat



    Advanced Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Bulat_Ziganshin

    Цитата:
    new version:  
     
        * Encrypted archives support in SFX/unarc.exe/unarc.dll, including -p option and "Enter password" dialog box  
        * unarc.dll: removed "timer", added "overwrite?" and "password?" events
        * arc.groups updates

    Я правильно понял? Unarc.dll теперь поддерживает запароленные архивы? Если да, то скажите пожалуйста, как этим пользоваться и в какой кодировке должен быть пароль.

    ----------
    Krinkels.org - создание инсталляционных пакетов.
    Как много дел считались невозможными, пока они не были осуществлены.

    Всего записей: 695 | Зарегистр. 09-06-2009 | Отправлено: 07:19 30-07-2010
    qqqbbb

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    sfx создавал с макс. сжатием?

    с любым
     
    если пытаешься сжать 1 ехе файл программа  выдает или эту  ошибку c_szArcGetTimeProperty: not a filetime value или  эту ERROR: unins000.exe isn't archive or this archive is corrupt: archive signature not found at the end of archive. Please recover it using 'r' command or use -tp- option to ignore Recovery Record
     
    если запустить sfx архив распаковка обычно виснет

    Всего записей: 30 | Зарегистр. 25-07-2010 | Отправлено: 08:21 30-07-2010
    slech



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    А где взять?  

    Из шапки:
    Текущая альфа версия: 0.67 - загрузка

    Всего записей: 4893 | Зарегистр. 10-11-2004 | Отправлено: 08:39 30-07-2010 | Исправлено: slech, 08:40 30-07-2010
    Bulat_Ziganshin

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    если запустить sfx архив распаковка обычно виснет  

    создавай с максимальным сжатием
     

    Цитата:
    если пытаешься сжать 1 ехе файл

    это я вообще не понял
     
    Добавлено:

    Цитата:
    Unarc.dll теперь поддерживает запароленные архивы? Если да, то скажите пожалуйста, как этим пользоваться и в какой кодировке должен быть пароль.

     
    1. опция -p{Pwd} - точно так же, как в arc.exe
    2. в будущем будет utf8, осталось только freearc исправить
     
    кроме того, я убрал "timer" event, поскольку он был причиной зависаний. нет возражений?
     
    и собираюсь добавить колбеки "overwrite?" и "password?". точнее они уже добавлены, но я собираюсь передавать в них больше информации. пока мысль у меня такая:
     
    event("password?", flags, pwd_len, pwd_buf) - запрос пароля если последний введённый или переданный в -p не подходит. pwd_buf/pwd_len - размер и адрес буфера куда надо записать введённый пользователем пароль (опять же в utf), а flags=0 если пароль для этого файла запрашивается впервые или 1 если уже запрашивался, но пользователь ввёл неверный пароль
     
    event("overwrite?", 0, 0, buf) - запрос на перезапись файла на диске, где buf содержит информацию о размере, дате и имени файла внутри архива
     
    Добавлено:
    насчёт кодировки паролей - там сейчас используется unicode, но в ошибочном виде, вместо utf8 просто берутся младшие 8 бит codepoint. например 'ф' имеет codepoint 0x444, для пароля же берётся 0x44, т.е. 'D'
     
     
    помимо этого, работая над unarc, я обнаружил в шифровании freearc серьёзную ошибку. при передаче key, salt и пр. шестнадцатеричные цифры 'a'-'f' передавались как '0'..'5', т.е. из каждых 16 значений использовалось лишь 10, причём с неодинаковой вероятностью. это означает, что 256-битное шифрование в freearc имеет реальную энтропию в ~192 бита
     
    обе проблемы будут исправлены, но поэтапно, чтобы не создавать лишних проблем пользователям. 0.70 будет уметь распаковывать архивы, зашифрованные правильно, а создавать такие архивы начнёт только 0.75 (точнее 0.71 alpha)

    Всего записей: 3401 | Зарегистр. 13-08-2007 | Отправлено: 09:37 30-07-2010
    Profrager



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Bulat_Ziganshin

    Цитата:
    кроме того, я убрал "timer" event, поскольку он был причиной зависаний. нет возражений?
    вряд ли кто что возразит, мало кто знает что это за эвент "timer" и зачем он нужен) и где спасибо за то, что отдебажил этот глюк в виде зависания в dllке?)

    Цитата:
    и собираюсь добавить колбеки "overwrite?" и "password?"
    имхо для распаковки из InnoSetup это не требуется. И пароль и параметр для разрешения/запрещения перезаписи файлов можно завести через команды для unarc.dll. Но если посмотреть шире - отличная идея. Для универсальных анпакеров, юзающих твою dll будет проще.  

    Цитата:
    насчёт кодировки паролей - там сейчас используется unicode, но в ошибочном виде, вместо utf8 просто берутся младшие 8 бит codepoint. например 'ф' имеет codepoint 0x444, для пароля же берётся 0x44, т.е. 'D'
    По сути получается, что пароль передавать надо в анси добавляя ноль после каждого кода буквы?

    Всего записей: 888 | Зарегистр. 22-05-2010 | Отправлено: 12:40 30-07-2010
    Bulat_Ziganshin

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    и где спасибо за то, что отдебажил этот глюк в виде зависания в dllке?)  

    большое спасибо
     

    Цитата:
    По сути получается, что пароль передавать надо в анси добавляя ноль после каждого кода буквы?

    нет, пароль надо передавать в utf8. просто пока русские пароли не будут работать

    Всего записей: 3401 | Зарегистр. 13-08-2007 | Отправлено: 13:46 30-07-2010
    Profrager



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Bulat_Ziganshin

    Цитата:
    нет, пароль надо передавать в utf8. просто пока русские пароли не будут работать
    ясно, значит видимо до выхода 0.7 версии пока не стоит пользоваться данной фитчей. А то могут возникнуть проблемы с русскими паролями.
    Кстати, когда приблизительно стоит ждать новую официальную версию FreeArc'а?

    Всего записей: 888 | Зарегистр. 22-05-2010 | Отправлено: 14:46 30-07-2010
    Bulat_Ziganshin

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Profrager
    пароль надо кодировать в utf8
     

    Цитата:
    Кстати, когда приблизительно стоит ждать новую официальную версию FreeArc'а?

    в августе

    Всего записей: 3401 | Зарегистр. 13-08-2007 | Отправлено: 15:02 30-07-2010
    qqqbbb

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    В arc.groups есть раздел $precomp. Значит precomp будет интегрирован?

    Всего записей: 30 | Зарегистр. 25-07-2010 | Отправлено: 19:32 30-07-2010 | Исправлено: qqqbbb, 20:30 30-07-2010
    Bulat_Ziganshin

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    qqqbbb
    нет, он для внешнего precomp

    Всего записей: 3401 | Зарегистр. 13-08-2007 | Отправлено: 21:40 30-07-2010
    Ksanderash

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Bulat_Ziganshin
    Версия 0.666, Windows 7, отключенный Aero, классический интерфейс -- такие вот эффекты в окошке прогресса:
     

    Всего записей: 2141 | Зарегистр. 10-11-2005 | Отправлено: 21:56 30-07-2010
    Bulat_Ziganshin

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    всё так как и должно быть. у тебя потерялся скин windows - с ним выглядит немного посовременней: http://freearc.org/screenshots/freearc-windows.png

    Всего записей: 3401 | Зарегистр. 13-08-2007 | Отправлено: 22:06 30-07-2010
    Ksanderash

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Bulat_Ziganshin
    Да не, не потярялся. Просто предпочитаю функциональный аскетизм Возможно, сама винда виновата, замечал такое за ней. Но вот во FreeArc в глаза бросилось.
     
    Типичный пример глюков классического интерфейса в Windows 7
       
     
    Добавлено:

    Цитата:
    http://freearc.org/screenshots/freearc-windows.png
     

    О, да тут тоже не все гладко. Узенькая полоска скрытой менюхи видна.

    Всего записей: 2141 | Зарегистр. 10-11-2005 | Отправлено: 22:33 30-07-2010
    Bulat_Ziganshin

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    Узенькая полоска скрытой менюхи видна.

    да, я знаю. можно пережить

    Всего записей: 3401 | Зарегистр. 13-08-2007 | Отправлено: 22:39 30-07-2010
    BUU



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Когда новая версия выйдет архиватора

    Всего записей: 181 | Зарегистр. 15-08-2008 | Отправлено: 23:36 30-07-2010 | Исправлено: BUU, 23:37 30-07-2010
    Profrager



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    BUU
     

    Цитата:
    Bulat_Ziganshin
    в августе  


    Всего записей: 888 | Зарегистр. 22-05-2010 | Отправлено: 23:52 30-07-2010
    Profrager



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Bulat_Ziganshin
    не подскажешь какие коды ошибок выдает unarc.dll при выходе?
    -10 например, как я понял - это отмена операции из callback функции
    -1  это кривой входной архив
    А есть еще какие коды ошибок?

    Всего записей: 888 | Зарегистр. 22-05-2010 | Отправлено: 12:29 31-07-2010
    Bulat_Ziganshin

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    не подскажешь какие коды ошибок выдает unarc.dll при выходе?  

    смотрим исходники FreeArcExtract и видим там два return:
     
          if (strequ (ui->what, "quit"))
            return ui->n1;  // error code of command
    и
      return command.ok? FREEARC_OK : FREEARC_ERRCODE_GENERAL;
     
    первое отрабатывается при вызове quit(n1). ищем выхождения quit:
     
               char answer = UI->AskOverwrite (...);
               switch (answer)
               {
    ...
                 case 'q': quit(FREEARC_ERRCODE_OPERATION_TERMINATED);
               }
    ...
          if (!UI->ProgressFile (...))
            quit(FREEARC_ERRCODE_OPERATION_TERMINATED);
    ...
      if (!UI->ProgressWrite (...))  
         quit(FREEARC_ERRCODE_OPERATION_TERMINATED);
    ...
        if (!UI->ProgressRead (archive_...))
           quit(FREEARC_ERRCODE_OPERATION_TERMINATED);
    ...
            char answer = UI->AskPassword (cmd->pwd, PASSWORDBUF_SIZE);
            switch (answer)
            {
    ...
              case 'q': quit(FREEARC_ERRCODE_OPERATION_TERMINATED);
            }
     
    command.ok может быть FALSE насколько я вижу только если в FreeArcExtract были переданы неправильные опции
     
    FREEARC_ERRCODE_GENERAL = -1
    FREEARC_ERRCODE_OPERATION_TERMINATED = -10
     
    так что да, всё так как ты сказал
     
     
     
    Добавлено:
    пропустил ещё один вызов quit:
     
    // Экстренный выход из программы в случае ошибки
    void UnarcQuit()
    {
      CurrentProcess->quit(FREEARC_ERRCODE_GENERAL);
    }
     
    он срабатывает при неожиданных ошибках глубоко внутри кода, втч при сбойных архивах. так что верно всё что ты сказал плюс FREEARC_ERRCODE_GENERAL возвращается при неверных аргументаъ переданных в FreeArcExtract, хотя для скрипта это неактуально

    Всего записей: 3401 | Зарегистр. 13-08-2007 | Отправлено: 09:02 01-08-2010
    Profrager



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Bulat_Ziganshin
    Спасибо) Если честно, мне лень было в исходники заглядывать Проще спросить у автора
    А возможно ли сделать более подробный отчет по возникшей ошибке, ну типа как в arc.exe, там же пишется, что мол ОЗУ не хватает, или еще какая ошибка. Ну и тут тоже бы неплохо придумать побольше кодов ошибок. А то возникают ситуации, когда не понятно в чем дело, а FreeArcExtract возвращает все тот же -1.
     
    Добавлено:
    Как по мне было бы замечательно, если бы ошибки "битый архив" и "мало оперативы" были с разными номерами. А то некоторые репаки у некоторых юзеров непонятно из-за чего не хотят ставиться, хотя у остальных все замечательно.

    Всего записей: 888 | Зарегистр. 22-05-2010 | Отправлено: 09:22 01-08-2010
    Bulat_Ziganshin

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Profrager
    добавил http://code.google.com/p/freearc/issues/detail?id=234 - покидай туда какие ещё ситуации нуждаются в своих кодах ошибок

    Всего записей: 3401 | Зарегистр. 13-08-2007 | Отправлено: 09:32 01-08-2010
       

    Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106

    Компьютерный форум Ru.Board » Компьютеры » Программы » FreeArc: бесплатный open-source архиватор - Часть 3
    Widok (23-11-2010 11:37): Лимит страниц. Продолжаем здесь


    Реклама на форуме Ru.Board.

    Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
    Modified by Ru.B0ard
    © Ru.B0ard 2000-2024

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru