답변:
정확히 파일을 추출하고 있습니까? 명령 줄이나 GUI를 사용하고 있습니까? 파일을 드래그하거나 선택하고 추출 기능을 사용하고 있습니까? 쉘 확장 컨텍스트 메뉴를 사용하고 있습니까?
대상 폴더를 입력 한 다음 추출 기능을 선택하거나 셸 확장을 사용하는 경우 먼저 임시 폴더로 추출 하지 않고 대상으로 직접 추출합니다.
당신이 UI에있는 파일을 선택하면 드래그 대상 폴더로, 그것은 것입니다 임시 폴더에 압축을 해제합니다.
그 이유는 대상을 선택하는 방법에 있습니다. 대상 폴더를 입력하거나 상황에 맞는 메뉴 항목을 사용하면 프로그램은 추출해야하는 위치를 정확하게 알고 있습니다. 그러나 파일을 끌기 만하면 OLE 의 끌어서 놓기 기능이 작동하는 방식으로 인해 프로그램에서 대상 폴더의 위치를 알 수 없습니다. 즉, 탐색기입니다보관 프로그램이 아닌 대상 폴더를받습니다. 결과적으로 프로그램은 추출 위치를 알 수 없으므로 임시 폴더로 추출한 다음 탐색기가 완료되면 이동합니다. 두 가지 방법을 모두 사용하여 큰 파일을 추출하면이를 명확하게 볼 수 있습니다. 폴더로 드래그하면 압축이 풀리고 탐색기의 표준 파일 작업 대화 상자가 폴더로 이동합니다. 폴더를 지정하고 추출을 클릭하면 압축이 풀리고 추가 처리가 수행되지 않습니다.
추출 위치를 처리하는 방법을 보려면 7-Zip 의 소스 코드를 자유롭게 살펴보십시오.
몇 년 전에 필자가 작성한 프로그램에서 끌어서 놓기를 구현하려고 할 때 이것을 열심히 배웠습니다.
압축 해제를위한 메모리 요구 사항이 최소로 유지됩니다.
파일 시스템을 사용하지 않으면 메모리에서 압축 해제가 발생합니다. 메모리가 부족하거나 압축 파일이 크면 조만간 사용 가능한 메모리가 소진되고 메모리 페이징 프로세스가 시작됩니다.
이러한 상황에서 페이징은 파일이 여전히 압축 해제되고 (페이지 파일이 계속 추가되고 있기 때문에) 파일 시스템을 사용하는 것보다 훨씬 느리지 만, 파일이 압축 해제됨에 따라 오류가 있는지 검사되고 있으며, 많은 읽기 / 쓰기 작업. 페이지 파일에 발생할 수있는 최악의 상황입니다.
편집 : 임시 디렉토리 사용과 관련하여 많은 운영 체제 지침을 따르십시오. 압축 해제에 실패하면 작업을 수행하는 프로그램이 자체적으로 정리된다는 보장이 없습니다. 예를 들어 충돌했을 수 있습니다. 따라서 대상 파일에 잔여 파일이 남아 있지 않으며 운영 체제는 임시 파일이 적절하다고 판단 될 때이를 폐기합니다.
그 이유는 생각보다 간단합니다. 많은 프로그램이 파일을 % temp %로 압축 해제합니다. 대상 파일 시스템에 충분한 공간이 없기 때문입니다.
이제, 당신이 할 수 알고 당신의 파일 시스템에 충분한 공간이있을 수 있습니다, 그러나 응용 프로그램은하지 않습니다. 해당 파일 시스템이 OS 또는 다른 응용 프로그램에서 사용 중이고 압축 해제 중에 채워지면 어떻게됩니까?
개발자는 % temp %에 "무제한"공간이 있다고 가정하지만 대상은 그렇지 않습니다.
7-zip 또는 WinRAR 개발자가 아닌 나의 의견은 순전히 추측입니다. 즉, 모든 것이 완료 될 때까지 임시 공간을 사용하여 압축을 풀면 모든 파일이 손상되지 않았는지 (즉, 우편 번호가 손상되지 않았는지) 확인하는 데 도움이됩니다.
아카이브가 시작될 때 파일 작업을 시작한 큰 압축 파일의 압축을 풀 때보 다 나쁘지 않습니다. 아카이브가 끝날 때 무언가가 손상되었음을 알기 위해서입니다. 이 시점에서 모든 것에 대한 자신감을 잃게됩니다.
내 마지막 의견은 7-zip 에서이 동작을 본 것을 기억하지 못한다는 것입니다. 마우스 오른쪽 버튼을 클릭하고 여기에서 추출이라고 말하면 일반적으로 파일의 압축을 풀 때 파일에 액세스 할 수 있습니다. 어딘가에 설정이 아닌지 다시 확인 했습니까?