Вопрос по windows, decompression, c – открытие файла rar c

2

Я должен написать код на C, чтобы извлечь защищенный паролем RAR-файл в Windows. Я понятия не имею, как это сделать. Кто-нибудь может предложить мне что-нибудь или предоставить пример кода? Я буду очень благодарен.

РЕДАКТИРОВАТЬ:

Это код, который я использую для открытия файла rar. В системной команде ranjit - это пароль. Это дает ошибку undefined symbol_system в модуле + имя файла. Кто-нибудь может мне помочь?? Я борюсь за это с двух дней. РЕДАКТИРОВАТЬ: Этот код открывает архив, но не распаковывает его. Если я использую команду unrar в командной строке, она извлекает файл. Что мне делать?

#include<stdio.h>
#include<stdlib.h>
int main(int argc, char **argv)
     {
     char file[20];
     char file2[50] = "F:\\Program Files\\WinRAR\\unrar.exe";
     printf("enter the name of the rar file : ");
     gets(file);
     puts(file);
     system(("%s e -p ranjit %s >C:\stdout.log 2>C:\stderr.log",file2, file));
     getchar();
     return 0;
     }
Ну вот:unrarlib.org/download.html (посмотрите документацию в источнике) rubber boots

Ваш Ответ

2   ответа
1

В дополнение к тому, что предлагает karlphilip, есть также несколько потенциально интересных ресурсов наhttp://www.rarlabs.com/rar_add.htm.

В частности я думаюunrar.dll а такжеUnRAR источник может быть актуальным. Я не могу действительно проверить это в момент.

К сожалению, как я уже сказал, я не могу проверить это на момент. Однако, в качестве краткого руководства, если заголовок определяет классы, вы не можете использовать его в C. Если вместо этого он определяет группу функций, определенных вextern "C" Обертки, которые вам, вероятно, пригодятся, просто скомпилируйте вашу C-программу с помощью компилятора C ++, чтобы проблемы времени выполнения возникали в процессе стирки. torak
я навестилrarlabs.com/rar_add.htm, но их заголовочные файлы - ic c ++. Могу ли я использовать их в C ?? narayanpatra
1

Использование библиотеки unrar - извлечение файлов в буфер файлового потока

Но если вы ищете чистое C-решение, взгляните на:http://www.unrarlib.org/

Цитата из их FAQ:URARFileLib (сокращенное название для UniquE RAR File Library, также называемой unrarlib) - это бесплатная библиотека для программистов на С, которая имеет доступ к архивам RAR.

Другой подход, который я только что успешно протестировал, не требует использования внешних библиотек для распаковки rar-файлов. использованиеСистема () вызвать инструмент командной строки (например,UnRAR ) уже установлен в вашей системе для выполнения работы:

system("unrar x -ppassword protected_file.rar /destination_directory");

Например, скажем, защищенный файл был названfile.rarпароль был1234 и каталог назначения был/ Главная / пользовательВы бы вызвали system () со следующими параметрами:

system("unrar x -p1234 file.rar /home/user/");
Помогите, пожалуйста. Я много борюсь в этом. narayanpatra
@karlphilip вы пробовали это в Windows ?? Я попробовал ваш код, он просто открывает архив. Это не извлечь его. narayanpatra
Спасибо за помощь, но это на c ++, и я ничего не знаю на c ++. narayanpatra
Я обновил свой ответ кодом, который я только что попробовал. Это сработало. karlphillip

Похожие вопросы