2010-08-18 7 views
1

가능한 복제를 RAR 파일의 압축을 풉니 다 :
opening a rar file by cC 코드에 의해

내가 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");) 방금 ​​archieve를 열었습니다. 파일을 추출하지 못했습니다. 이제 다음에 무엇을해야할지 모르겠습니다. 아무도 나에게 뭔가 제안 할 수 있습니까 ??

이것은 rar 파일을 여는 데 사용하는 코드입니다. 시스템 명령에서 ranjit은 암호입니다. 그것은 모듈 + 파일 이름에 정의되지 않은 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; 
    } 
+1

왜이 기능 프로그래밍으로 태그가 지정되어 있습니까? – Greg

+1

중복 : http://stackoverflow.com/questions/3514854/opening-a-rar-file-by-c – James

+0

이 질문은 http://stackoverflow.com/questions/3514854/opening-a-rar의 연속입니다. -file-by-c, 같은 저자가 게시했습니다. 저자는 원래 질문에 추가 정보를 편집해야합니다. – bta

답변

0

매뉴얼 페이지 here입니다. 매뉴얼에 따르면, 명령 구문은 다음과 같습니다

unrar <command> [-<switch 1> -<switch N>] archive [files...] [path...] 

당신은 아카이브를 추출하는 명령 unrar -e -p password protected_file.rar를 사용하고 있다고 언급. 선택적 최종 매개 변수 인 [path...]을 추가하여 도움이되는지 확인해보십시오. 경로는 생략 될 때 현재 디렉토리로 간주됩니다. 셸에서 명령을 실행하면 모든 것이 예상대로 작동합니다. C에서 system 명령을 사용하여 실행할 때 현재 디렉토리가 무엇인지 알 수 없습니다. 아카이브를 추출 할 디렉토리를 수동으로 지정하고 변경 사항이 있는지 확인하십시오.

그래도 문제가 해결되지 않으면 unrar 명령의 표준 출력과 표준 오류를 텍스트 파일로 리디렉션 해보십시오. 이 유틸리티는 직접 실행하지 않기 때문에 표시되지 않는 콘솔에 중요한 정보를 제공 할 수 있습니다. 시도해보십시오 :

system("unrar -e -p password file.rar >C:\stdout.log 2>C:\stderr.log"); 

그리고 프로그램 종료 후 로그 파일을 확인하십시오.

관련 문제