Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/sharepoint/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用c打开rar文件_C_Windows_Compression - Fatal编程技术网

用c打开rar文件

用c打开rar文件,c,windows,compression,C,Windows,Compression,我必须用C编写代码,才能在windows中提取受密码保护的rar文件。我不知道该怎么做。有人能给我一些建议或提供一段示例代码吗?我会非常感激的 编辑: 这是我用来打开rar文件的代码。在系统命令ranjit中是密码。它在模块+文件名中给出错误未定义符号\u系统。有人能帮我吗??两天以来,我一直在努力解决这个问题。 编辑:此代码打开存档文件,但不提取它。如果在命令行中使用unrr命令,它将提取文件。我该怎么办 #include<stdio.h> #include<stdlib.h

我必须用C编写代码,才能在windows中提取受密码保护的rar文件。我不知道该怎么做。有人能给我一些建议或提供一段示例代码吗?我会非常感激的

编辑:

这是我用来打开rar文件的代码。在系统命令ranjit中是密码。它在模块+文件名中给出错误未定义符号\u系统。有人能帮我吗??两天以来,我一直在努力解决这个问题。 编辑:此代码打开存档文件,但不提取它。如果在命令行中使用unrr命令,它将提取文件。我该怎么办

#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;
     }
#包括
#包括
int main(int argc,字符**argv)
{
字符文件[20];
char file2[50]=“F:\\Program Files\\WinRAR\\unrar.exe”;
printf(“输入rar文件的名称:”);
获取(文件);
放置(文件);
系统(“%s e-p ranjit%s>C:\stdout.log 2>C:\stderr.log”,文件2,文件));
getchar();
返回0;
}

但如果您正在寻找纯C解决方案,请查看:

引用他们的常见问题:URARFileLib(UniquE RAR File Library的简称,也称为unrarlib)是C程序员访问RAR档案的免费库

我刚刚成功测试的另一种方法,不需要使用外部库来解压缩rar文件。用于调用已安装在系统上的命令行工具(如UNRR)来执行此任务:

system("unrar x -ppassword protected_file.rar /destination_directory");
例如,假设受保护的文件名为file.rar,密码为1234,目标目录为/home/user,您可以使用以下参数调用system():

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

除了karlphilip的建议之外,还有一些潜在的有趣的参考资料


特别是我认为unrr.dllunrr源文件可能是相关的。虽然我不能在这个时候真正检查它。

这里你去:(查阅源文件)谢谢帮助,但是这是在C++中,我不知道C++中的任何东西。不要误导无辜者;)@我拜访过卡尔菲利普。他们提供了一个exe文件,即。unrarlib。我可以安装它并以某种方式将其用于我的代码吗?我想它将是一个头文件。他们在2002年发布了它,现在可以用了吗?谢谢,我从unrarlib.org上得到了头文件。它有两个文件。第一个是unrarlib.c和unrarlib.h。我必须在代码中同时包含这两个文件吗?@karlphillip我正在尝试使用UNRR命令行工具。当我在命令提示符下使用它时,它正在提取文件。但是,当我使用系统函数调用它时,它只打开rar文件,而不extarct。有人能帮我吗?我去过。但是他们的头文件是IC C++。我能用c语言吗?不幸的是,就像我说的,我不能在早上查出来。但是,作为一个快速GUD,如果头定义类,则不能在C中使用它,如果它定义了一组在 Extn“C”/Cux>包装器中定义的函数,那么您可能很好地去做,只是用C++编译器编译C程序,这样运行时问题就应该在清洗中出现。