Программное создание архива(любого формата)

Тема в разделе "WASM.WIN32", создана пользователем supersonic777, 26 окт 2006.

  1. supersonic777

    supersonic777 New Member

    Публикаций:
    0
    Регистрация:
    19 авг 2006
    Сообщения:
    25
    Нужно программно создать архив любого формата из каталога в котором есть еще куча других каталогов с файлами, подскажите как реализовать.
     
  2. masquer

    masquer wasm.ru

    Публикаций:
    0
    Регистрация:
    13 сен 2002
    Сообщения:
    890
    Адрес:
    Николаев
    не знаю что такое "архив любого формата", но findfirst..findnext поможет отцу русской демократии
     
  3. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    Писать свой архиватор, как же ещё.
    [File Header]
    -> dwSign
    -> dwCompSize
    -> dwCrc32
    [Compressed Data]
    [File Table]
    <Entry1>
    <Entry2>
    <Entry3>
    ...
     
  4. Asterix

    Asterix New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2003
    Сообщения:
    3.576
    использовать 7z SDK
     
  5. supersonic777

    supersonic777 New Member

    Публикаций:
    0
    Регистрация:
    19 авг 2006
    Сообщения:
    25
    Можно подробней ?
     
  6. shoo

    shoo New Member

    Публикаций:
    0
    Регистрация:
    17 июл 2003
    Сообщения:
    1.537
    Адрес:
    Ukraine
    сформировать строку типа:
    Код (Text):
    1. "%ProgramFiles%\7zip\7z.exe" a -tzip archive.zip papka_s_kuchey_filev_i_podpapok
    и исполнить ее :)
     
  7. supersonic777

    supersonic777 New Member

    Публикаций:
    0
    Регистрация:
    19 авг 2006
    Сообщения:
    25
    Этот севен-зип тянет за собой всякий ненужный мне хлам
     
  8. Asterix

    Asterix New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2003
    Сообщения:
    3.576
    идешь на оф сайт 7z, качаешь SDK, разбираешься
     
  9. censored

    censored New Member

    Публикаций:
    0
    Регистрация:
    5 июл 2005
    Сообщения:
    1.615
    Адрес:
    деревня "Анонимные Прокси"
    zlib/bzlib+своя система fat (могу кинуть если найду)
     
  10. Quantum

    Quantum Паладин дзена

    Публикаций:
    0
    Регистрация:
    6 янв 2003
    Сообщения:
    3.143
    Адрес:
    Ukraine
    n0name
    Что-то на уровне RLE можно быстренько написать :) Но чтобы степень сжатия была в основном положительной величиной, придётся юзать хотя бы Huffman... Долго возиться - лучше заюзать готовый архиватор.
     
  11. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    Не скажи =) Я Хаффмана и RLE одинаково по времени писал. Правда у меня не совсем стандартный RLE =) Я там хранил не 2 байта (один под код, другой под количество повторения), а сжимал до бит. Определял максимальное значение и log2().
    supersonic777
    Смотря что требуется, если написать простейший архиватор, то можно для примера RLE заюзать, правда всё равно FT надо будет делать.
     
  12. supersonic777

    supersonic777 New Member

    Публикаций:
    0
    Регистрация:
    19 авг 2006
    Сообщения:
    25
    Проблем в следующем - нужно с удаленного компа передать на другой комп каталог вместе со всем его содержимым сохраняя струкутру директорий.
     
  13. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    Глянуть описание формата архива (типа zip). Да и сжатие не стоит в условии.
     
  14. Quantum

    Quantum Паладин дзена

    Публикаций:
    0
    Регистрация:
    6 янв 2003
    Сообщения:
    3.143
    Адрес:
    Ukraine
    n0name
    Похоже на VLC.

    Для произвольных файлов этот алгоритм не даст никакого выйгрыша в размере. Желательно всё же Huffman + словарик или Burrows-Wheeler + словарик (для любителей экзотики).

    Остаётся только позавидовать :)
     
  15. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    Угу, я им дерево для Хаффмана сжимал =) Там большое количество нулей, так что сжималось очень даже неплохо, где то раз в 15.