Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Для новичков > вызов архиватора


Автор: willhunting2 27.4.2010, 22:42
Нужно из программы вызывать архиватор и архивировать/разархивировать определённые данные.
Как это можно сделать ?

Автор: semibug 28.4.2010, 00:40
Вариантов масса.
Если вы хотите использовать один из имеющихся архиваторов (например WinRar), можно вызвать его с необходимыми параметрами с помощью system("командная строка") или, как более верный вариант, с помощью CreateProcess ( можно и ShellExecute ).
Для многих форматов есть исходные тексты компрессоров/декомпрессоров, поэтому можно встроить прямо в свою программу возможность непосредственной работы с архивами.
Так же существуют различные библиотеки (как с открытым кодом так и без) для работы с архивами.


Автор: willhunting2 28.4.2010, 11:23
Цитата(semibug @ 28.4.2010,  00:40)
Вариантов масса.
Если вы хотите использовать один из имеющихся архиваторов (например WinRar), можно вызвать его с необходимыми параметрами с помощью system("командная строка") 

как указывать параметры ?
т.е. например архиватор лежит С:\\winrar\winrar.exe
данные лежат С:\\xxx.y
как будет выглядеть строка system при архивации/распаковки ?

Автор: xvr 28.4.2010, 12:13
Цитата(willhunting2 @  28.4.2010,  11:23 Найти цитируемый пост)
как будет выглядеть строка system при архивации/распаковки
Это целиком зависит от самого архиватора. Для winrar'а это будет
упаковка:
Код

system("c:\\winrar\\rar.exe a my_archive.rar c:\\xxx.y\\*.*");

распаковка
Код

system("c:\\winrar\\rar.exe x my_archive.rar");




Автор: willhunting2 28.4.2010, 15:27
спасибо

Автор: yeputons 29.4.2010, 10:23
пометь тему решённой

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)