通过c代码提取rar文件
可能的重复:
通过c打开rar文件
我必须使用c代码提取rar文件。首先我尝试寻找图书馆。我从 http://www.unrarlib.org/ 获取它。但它是2002年构建的。所以它不支持当前的rar格式。然后我检查了http://www.rarlabs.com/rar_add.htm。它有库,但是是 C++ 的。我对c++一无所知,所以我不能使用它们。我尝试通过使用系统功能来使用命令行工具unrar。当我在 CMD 中使用 unrar 时,它提取了文件,但是当我在 C 中使用它时,(命令是 system("unrar -e -p password protected_file.rar"
);) 它刚刚打开了档案。它没有提取该文件。现在我不知道下一步该做什么?有人能给我建议吗?
这是我用来打开rar文件的代码。系统命令中的ranjit是密码。它给出了模块+文件名中未定义的符号系统错误。 有人可以帮助我吗?两天以来我一直在努力解决这个问题。
#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;
}
Possible Duplicate:
opening a rar file by c
I have to extract a rar file using c code. First I tried out to find the libraries. I got it from http://www.unrarlib.org/. But it was built in 2002. So it do not support the current rar format. Then I checked http://www.rarlabs.com/rar_add.htm. It have libraries but in c++. I don't know anything about c++, So I can't use them. I tried to use the command line tool unrar by using system function. When I used unrar in CMD , It extracted the file but when I used it in C, (command was system("unrar -e -p password protected_file.rar"
);)
It just opened the archieve. It did not extract the file. Now I don't know what to do next? Can anybody suggest me something??
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.
#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;
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
unrar
的手册页位于此处。根据手册,命令语法是:您提到您正在使用命令
unrar -e -p password protected_file.rar
来提取存档。尝试添加可选的最终参数[path...]
并查看是否有帮助。当省略该路径时,该路径很可能被假定为当前目录。当您从 shell 运行命令时,一切都会按预期进行。当您在 C 中使用system
命令运行时,您不知道当前目录是什么。手动指定一个目录来将存档解压到其中,看看是否会发生任何变化。如果仍有问题,请尝试将
unrar
命令的标准输出和标准错误重定向到文本文件。该实用程序可能会在控制台上为您提供您看不到的重要信息,因为您没有直接启动它。尝试:并在程序退出后检查日志文件。
The manual page for
unrar
is here. According to the manual, the command syntax is:You mention that you are using the command
unrar -e -p password protected_file.rar
to extract the archive. Try adding on the optional final parameter[path...]
and see if that helps. Chances are, the path is assumed to be the current directory when it is omitted. When you run the command from the shell, everything works as expected. When you run using thesystem
command from within C, you don't know what the current directory is. Manually specify a directory to extract the archive into and see if that changes anything.If you are still having problems, try redirecting the standard output and standard error of your
unrar
command to a text file. The utility may be giving you important information on the console that you are not seeing because you are not launching it directly. Try:and check the log files after your program exits.