2013-05-03 5 views
0

아카이브에서 단일 파일을 추출하는 C# 코드에 Process.Start 행을 포함시키고 싶습니다. 특히 나는 커맨드 라인 실행이 어떻게 보이는지 찾고있다.winrar를 사용하여 아카이브에서 하나의 파일을 어떻게 추출합니까?

I.E. Test.rar 파일에는 picture.png 파일뿐만 아니라 다른 파일들이 많이 있습니다. 내가 선택한 곳으로 picture.png을 가져 오는 방법은 무엇입니까?

감사합니다. 이 같은

답변

1

사용 unrar.exe :

unrar.exe X test.rar C : \ 대상

Process process = new Process(); 
process.StartInfo.FileName = "unrar.exe"; 
process.StartInfo.Arguments = "x test.rar C:\Destination"; 
process.Start(); 
process.WaitForExit(); 
+0

전체 파일을 덮어 씁니까? 나는 전체 파일이 너무 오래 걸릴 것이라고 unrar'ing으로 아카이브에서 하나의 파일을 원한다. – fsnot

+0

n 을 사용하여 file이라는 파일 만 원한다고 지정할 수 있습니다. unrar.exe x npicture.png test.rar C : \ Destination. 모든 옵션을 보려면 명령 프롬프트에서 unrar.exe를 매개 변수없이 실행하십시오. – Arsen

+0

굉장! 그것은 내가 필요한 것입니다. 팁이 cmd에서 unrar로 실행 해 주셔서 감사합니다. 솔직히 생각하지 못했습니다.) : 아카이브에 같은 이름의 파일이 여러 개 있다면 어떨까요? n <파일 위치 \ 파일>일까요? – fsnot

1

그냥에게 적절한 인수를 전달하는 과정을 킥오프. 다른 파일처럼 처리 할 수 ​​있습니다.

Process process = new Process(); 
process.StartInfo.FileName = @"C:\MyPathToWinRar\winnrar.exe"; 
process.StartInfo.Arguments = @"unrar x c:\yourfile.rar fileToExtract.png c:\extractfolder\"; 
process.Start(); 
process.WaitForExit(); 

winrar args에 대한 자세한 내용은 여기를 참조하십시오. http://comptb.cects.com/2503-using-the-winrar-command-line-tools-in-windows

P. 프로세스를 사용하지 않기로 결정한 경우이를위한 라이브러리가 있습니다. https://stackoverflow.com/questions/11737/net-library-to-unzip-zip-and-rar-files

+0

고마워요! 이것이 제가 찾고 있던 것입니다. rar 파일 디렉토리 내의 다른 위치에 같은 이름의 파일이 여러 개 있다면 "unrar x c : \ yourfile.rar location \ fileToExtract.png c : \ extractfolder \"를 사용하면됩니까? – fsnot

+0

@ user2348593 그래서 나는 당신이 그것을 시험해보아야 만한다. 나는 단지 문서를 읽었고 내가 일하고있는 comp에 winrar가 없다는 것을 알기 때문이다. – evanmcdonnal

관련 문제