我必须在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;
}
答案 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源可能是相关的。我不能在妈妈那里看看。