큰 폴더를 20Mb로 제한된 작은 파일로 압축하는 방법은 무엇입니까? 압축 할 때 일부 하위 파일 /

큰 폴더를 많은 20Mb 파일로 압축하는 방법을 찾고 있습니다. zip 파일을 더 작은 파일로 나누고 싶지 않습니다. 대신 압축 할 때 일부 하위 파일 / 폴더를 20Mb 그룹으로 그룹화하고 싶습니다.

그렇게하는 방법을 알고 있다면 도와주세요!

최신 정보

압축을 풀 수있는 작은 압축 파일 만 사용해야합니다.

내 의도는 virustotal.com 을 사용 하여 큰 폴더를 스캔하는 것입니다.



답변

winzip에서 : winzip을 시작하고 winzip에 추가 또는 끌어서 놓거나 파일을 마우스 오른쪽 단추로 클릭하고 winzip ‘zip에 추가 …’를 사용하여 파일을 zip에 추가하십시오.

그런 다음 winzip에서 :

동작- ‘부품 크기’하단에서 분할 ‘기타 크기’를 선택한 다음 20을 입력하고 mb를 선택하십시오.

끝난!


답변

당신이 제안하는 것은 본질적으로 배낭 문제 의 변형이며 , 파일 압축으로 인해 각 항목이 20MB “백팩”을 얼마나 차지하는지 알지 못하는 트위스트가 추가되었습니다.

물론 사소한 해결책은 각 파일을 독립적으로 압축하는 것이지만 파일 수를 줄이는 데 실패하므로 만족스러운 해결책이 아니라고 생각합니다.

이 문제가 발생하면 각 파일을 임시 위치 (또는 디스크에 쓰지 않고 메모리에서)로 압축하여 시작하여 각 파일에 대한 대략적인 압축 크기를 얻을 수 있다고 가정합니다. 이 정보를 사용하여 배낭 문제에 대한 표준 접근 방식으로 그룹화 할 파일을 결정하고 실제 zip 파일을 작성할 수 있습니다.

스크립팅 언어를 사용할 수 있고 사용 방법을 알고 있다고 가정하면이 방법이 자동화하기가 매우 간단 할 것으로 예상됩니다. 처리해야 할 파일이 여러 개 있으면 수동으로 처리하는 것이 상당히 지루할 것입니다 …


답변

zip을 통해 분할을 수행하게하면 스스로 알아내는 것보다 자동화하기가 훨씬 쉽습니다. 목표가 20MB zip 파일 인 경우 아카이브에 추가하기 전에 각 파일의 압축 된 크기를 추정해야합니다. zip이 당신을 위해 분할하는 것을 원하지 않는 이유가 있습니까? gnu zip을 사용하여 수행하는 방법은 다음과 같습니다.

zip -s 20m -r myzip.zip mydir

파일 이름에 증분 색인 번호가있는 20MB 압축 파일이 생성됩니다.


답변

Linux에는 정확히 이것을 수행하는 zipsplit 이라는 프로그램 이 있습니다. 표준 우편 패키지의 일부입니다.

다음과 같이 실행할 수 있습니다.

zipsplit bigfile.zip -n 20000000

bigfile.zip을 최대 20MB의 부분으로 분할합니다. 포함 된 개별 파일은 분할 되지 않습니다 . 따라서 각 부분을 개별적으로 압축 해제 할 수 있습니다. 이는 최대 부품 크기에 맞지 않는 단일 파일이있는 경우 분할이 불가능하다는 것을 의미합니다.

업데이트 :
info-zip.org의 Windows 바이너리, 특히 Win 64의 경우 ftp://ftp.info-zip.org/pub/infozip/win32/zip300xn-x64.zip 에 Windows 용 바이너리가있는 것 같습니다 .


답변

쉬운 전망은 아닙니다.

필자는 최근 DVD에 쉽게 저장하기 위해 4.3GB 이하의 하위 디렉토리로 파일을 수집하는 스크립트를 작성했지만 모두 압축되지 않았습니다.

압축으로 수행-이제 도전이 있습니다. 압축 파일 크기를 예측할 수 없습니다. 20MB를 초과 할 때까지 zip에 파일을 내림차순으로 파일을 계속 추가 한 다음 마지막 파일을 제거하여 20MB 이하로 떨어질 때까지 작은 파일로 교체하면됩니다. . 모든 파일을 소진하고 여전히 20MB 이상인 경우 마지막 파일을 삭제하고 다음 zip으로 이동하십시오.

상당히 까다로운 스크립팅과 다소 느리고 고통스러운 프로세스입니다.


답변

나는 이것이 오래된 스레드라는 것을 알고 있지만 방금 7-zip 으로이 작업을 수행했습니다 .

“Split to Volume”옵션을 사용해야합니다.


답변

Dave는 OP가 요청한 것에 가장 가까운 프로그램 가능한 솔루션을 제공하는 것 같습니다 . 다음과 같은 가정을한다면 수동 으로도 수행 할 수 있다는 것을 알았 습니다 (순수한 기술적 문제는 아닙니다. 기술적 문제보다는 조직적인 문제입니다).

  1. 이후 영업 이익은 각각 zip 파일은 독립적으로 모든 내용을 추출 할 수있는 기능을 요구 , 20MB의 능가 파일 다음 중 한 가지 방법으로 처리해야합니다 압축하는 후 :
    • 그것들은 고려되지 않아야하므로 분리되어야한다.
    • 다른 답변 ( winzip , 7-zip )이 제안한 것처럼 20MB 볼륨으로 분할해야 하며 결과 파일을 독립적으로 사용할 수 없습니다 (이 첫 번째 가정 위반 ).
  2. 압축 파일은 반드시 정확히 20MB 일 필요는 없습니다.
  3. 대략 20MB 크기의 zip 파일을 여러 개 갖는 것이 더 중요한 경우 압축없이 압축을 수행 할 수 있습니다.

이 방법을 7-zip (Windows 인터페이스 및 터미널)과 함께 사용 하여 새로 생성 된 zip 파일의 압축을 유지했습니다.

모든 파일을 원하는 압축 방법을 사용하여 빈 폴더의 단일 zip 파일로 압축하여 시작하십시오 (예 🙂 ALL.zip.

  1. 크기 또는 압축 크기 (압축) 열을 클릭하여 파일 및 폴더 목록을 정렬하십시오.
  2. 가장 작은 크기부터 시작하여 zip으로 그룹화 할 파일 / 폴더를 선택하십시오.
  3. 언론 Test그들의 집단 크기를 (이 자신의 압축을 고려) 확인 버튼을 :
  4. 언론 Extract또는 Copy하여 추출 경로의 끝에 새 폴더의 이름 (예 :에 추가하는 동안 버튼을 plu_8MB)
  5. ALL.zipzip 내부에서 방금 추출한 파일 (삭제 실수로 인한 추출을 피함)을 삭제하고 다음 폴더 또는 파일 하위 세트로 이동하십시오.
  6. 다음 중 하나 를 반복 하십시오.
    • 독립적 인 zip 파일을 작성하려는 경우 1-5 단계;
    • 1-3 단계를 수행하고 집합 크기가 약 20MB가 될 때까지 동일한 폴더 이름 (4 단계)을 재사용하십시오.
  7. 모든 내용 ALL.zip을 독립 폴더로 추출한 후 해당 zip을 삭제하고 해당 폴더에서 터미널을여십시오 .
  8. 유형:

    for /F %i in ('dir /b') do "C:\Program Files\7-zip\7z.exe" a -tzip %i.zip %i
    

    를 누르면 ENTER방금 추출한 각 폴더에 대한 zip 파일이 생성됩니다.