Форум программистов, компьютерный форум CyberForum.ru

Работа с zip - C++

Восстановить пароль Регистрация
 
Gepar
 Аватар для Gepar
1173 / 529 / 20
Регистрация: 01.07.2009
Сообщений: 3,508
15.09.2011, 20:39     Работа с zip #1
Хотелось бы сделать мини обработчик zip архивов для своих нужд, который бы редактировал все zip архивы что найдёт в папке. Ну из возможностей нужна возможность редактирования txt файлов внутри zip архива и перепаковка архива (извлечение всех файлов из архива и создание нового архива с содержимым папки). Хотя может это я многого хочу, но всё же есть ли что простенькое в освоении и справляющееся с перечисленными мной задачами?

Добавлено через 1 час 22 минуты
Я в плане того чтобы была готовая библиотека или просто готовый чей пример, который можно было бы использовать в своём консольном приложении )
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.09.2011, 20:39     Работа с zip
Посмотрите здесь:

помогите пожалуйста в работе с ZIP архивами C++
C++ Помогите разобраться с zip архивами.
Распаковать zip архив C++
C++ Работа с zip-архивами.
C++ Создание ZIP архива
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
sandye51
программист С++
 Аватар для sandye51
677 / 579 / 39
Регистрация: 19.12.2010
Сообщений: 2,016
15.09.2011, 21:42     Работа с zip #2
так что просто вызывай винрар через свою прогу и все)
Gepar
 Аватар для Gepar
1173 / 529 / 20
Регистрация: 01.07.2009
Сообщений: 3,508
15.09.2011, 23:15  [ТС]     Работа с zip #3
sandye51, мм, а можно пример? Это я так понимаю вы намекаете на вызов его через system()? Такой вариант тоже подойдёт, но только я не хотел бы видеть кучу всплывающех окошек и переводов фокуса на винрар во время работы программы, есть ли возможность вызывать винрар и давать ему комманды на распаковку / упаковку в каком-нибудь silent режиме?
sandye51
программист С++
 Аватар для sandye51
677 / 579 / 39
Регистрация: 19.12.2010
Сообщений: 2,016
16.09.2011, 02:41     Работа с zip #4
не system, а CreateProcess
там и команду передать спокойно можно

snippet
C++
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
size_t ExecuteProcess(std::string FullPathToExe, std::string Parameters, size_t millisecToWait) 
{ 
    size_t iMyCounter = 0, iReturnVal = 0, iPos = 0; 
    DWORD dwExitCode = 0; 
    std::string sTempStr = ""; 
 
    if (Parameters.size() != 0) 
    { 
        if (Parameters[0] != ' ') 
        { 
            Parameters.insert(0, " "); 
        } 
    } 
 
    sTempStr = FullPathToExe; 
    iPos = sTempStr.find_last_of("\\"); 
    sTempStr.erase(0, iPos +1); 
    Parameters = sTempStr.append(Parameters); 
 
    char * pwszParam = new char[Parameters.size() + 1]; 
    if (pwszParam == 0) 
    { 
        return 1; 
    } 
    const char* pchrTemp = Parameters.c_str(); 
    strcpy_s(pwszParam, Parameters.size() + 1, pchrTemp); 
 
    /* CreateProcess API initialization */ 
    STARTUPINFOA siStartupInfo; 
    PROCESS_INFORMATION piProcessInfo; 
    memset(&siStartupInfo, 0, sizeof(siStartupInfo)); 
    memset(&piProcessInfo, 0, sizeof(piProcessInfo)); 
    siStartupInfo.cb = sizeof(siStartupInfo); 
 
    if (CreateProcessA(FullPathToExe.c_str(), 
                            pwszParam, 0, 0, false, 
                            DETACHED_PROCESS, 0, 0, 
                            &siStartupInfo, &piProcessInfo) != false) 
    { 
         /* Watch the process. */ 
        dwExitCode = WaitForSingleObject(piProcessInfo.hProcess, millisecToWait); 
    } 
    else 
    { 
        /* CreateProcess failed */ 
        iReturnVal = GetLastError(); 
    } 
 
    /* Free memory */ 
    delete[]pwszParam; 
    pwszParam = 0; 
 
    /* Release handles */ 
    CloseHandle(piProcessInfo.hProcess); 
    CloseHandle(piProcessInfo.hThread); 
 
    return iReturnVal; 
}
Nameless One
Эксперт С++
 Аватар для Nameless One
5753 / 3402 / 255
Регистрация: 08.02.2010
Сообщений: 7,390
16.09.2011, 05:31     Работа с zip #5
Цитата Сообщение от Gepar Посмотреть сообщение
но только я не хотел бы видеть кучу всплывающех окошек и переводов фокуса на винрар во время работы
он вроде может работать в консольном режиме, ЕМНИП.
А вообще есть свободные библиотеки для работы с zip-архивами, нужно только погуглить
odip
Эксперт C++
 Аватар для odip
7224 / 3286 / 58
Регистрация: 17.06.2009
Сообщений: 14,165
16.09.2011, 09:32     Работа с zip #6
Сдался тебе этот zip
Бери современную и бесплатную библиотеку - LZMA
http://www.7-zip.org/sdk.html
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.09.2011, 09:45     Работа с zip
Еще ссылки по теме:

C++ Работа с zip архивами (нужный порядок файлов)
C++ Работа с zip архивами
Zip запаковка\распаковка данных со смещением C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
mimicria
return (true);
 Аватар для mimicria
1956 / 1093 / 91
Регистрация: 19.04.2011
Сообщений: 2,344
16.09.2011, 09:45     Работа с zip #7
Или, к примеру, ZLib
Yandex
Объявления
16.09.2011, 09:45     Работа с zip
Ответ Создать тему
Опции темы

Текущее время: 13:47. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru