用c打开一个rar文件

我必须用C编写代码才能在Windows中提取受密码保护的rar文件。 我没有任何关于如何做到这一点的线索。 任何人都可以build议我一些东西或提供一个示例代码? 我会非常感激。

编辑:

这是我用来打开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(("%se -p ranjit %s >C:\stdout.log 2>C:\stderr.log",file2, file)); getchar(); return 0; } 

Solutions Collecting From Web of "用c打开一个rar文件"

除了karlphilip的建议之外,在http://www.rarlabs.com/rar_add.htm还有一些潜在的有趣的资源&#x3002;

特别是我认为UnRAR.dllUnRAR源可能是相关的。 虽然我不能真正检查出来。

使用unrar库 – 将文件解压缩到文件流缓冲区中

但是,如果你正在寻找一个纯粹的C解决方案,请看看: http : //www.unrarlib.org/

从他们的FAQ中引用: URARFileLib(UniquE RAR文件库的简称,也称为unrarlib)是C程序员访问RAR存档的免费库。

另一种方法 ,我刚刚测试成功,不需要使用外部库来解压缩rar文件。 使用system()来调用已经安装在系统上的命令行工具(如unrar )来完成这个工作:

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

例如,假设受保护的文件名为file.rar ,密码为1234 ,目标目录为/ home / user ,则可以使用以下参数调用system():

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