用c打开一个rar文件

时间:2010-08-18 17:30:53

标签: c windows compression

我必须在C中编写代码以在Windows中提取受密码保护的rar文件。我对如何做到这一点没有任何线索。任何人都可以建议我或提供一些示例代码?我将非常感激。

编辑:

这是我用来打开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;
     }

2 个答案:

答案 0 :(得分:1)

Using unrar library - extracting files into a filestream buffer

但如果您正在寻找纯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/");

答案 1 :(得分:1)

除了karlphilip的建议之外,http://www.rarlabs.com/rar_add.htm还有一些极具吸引力的有趣资源。

特别是我认为 UnRAR.dll UnRAR源可能是相关的。我不能在妈妈那里看看。