narayanpatra
narayanpatra

Reputation: 5691

opening a rar file by c

I have to write code in C to extract a password protected rar file in windows. I don't have any clue about how to do this. can anybody suggest me something or provide a sample piece of code? I will be very thankful.

EDIT:

This is the code I am using to open the rar file.In the system command ranjit is the password. It's giving the error undefined symbol_system in module+thefile name. Can anybody help me?? I am struggling on this since two days. EDIT: This code opens the archive but do not extract it. If I uses the unrar command in command line, it extracts the file. What I should I do?

#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;
     }

Upvotes: 3

Views: 5562

Answers (2)

karlphillip
karlphillip

Reputation: 93410

Using unrar library - extracting files into a filestream buffer

But if you're looking for a pure C solution, take a look at: http://www.unrarlib.org/

Quote from their FAQ: The URARFileLib (short name for UniquE RAR File Library, also called unrarlib) is a free library for C programmers to access RAR archives.

Another approach, which I just tested successfully, doesn't require the use of external libraries to decompress rar files. Use system() to invoke a command-line tool (such as unrar ) already installed on your system to do the job:

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

For instance, let's say the protected file was named file.rar, the password was 1234 and the destination directory was /home/user, you would call system() with the following parameters:

system("unrar x -p1234 file.rar /home/user/");

Upvotes: 1

torak
torak

Reputation: 5802

In addition to what karlphilip's suggestions there's also a couple of potentialliy interesting looking resources at http://www.rarlabs.com/rar_add.htm.

In particular I am thinking UnRAR.dll and UnRAR source may be relevant. I can't really check it out at the momment though.

Upvotes: 2

Related Questions