큰 폴더를 많은 20Mb 파일로 압축하는 방법을 찾고 있습니다. zip 파일을 더 작은 파일로 나누고 싶지 않습니다. 대신 압축 할 때 일부 하위 파일 / 폴더를 20Mb 그룹으로 그룹화하고 싶습니다.
그렇게하는 방법을 알고 있다면 도와주세요!
최신 정보
압축을 풀 수있는 작은 압축 파일 만 사용해야합니다.
내 의도는 virustotal.com 을 사용 하여 큰 폴더를 스캔하는 것입니다.
큰 폴더를 많은 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으로 이동하십시오.
상당히 까다로운 스크립팅과 다소 느리고 고통스러운 프로세스입니다.
Dave는 OP가 요청한 것에 가장 가까운 프로그램 가능한 솔루션을 제공하는 것 같습니다 . 다음과 같은 가정을한다면 수동 으로도 수행 할 수 있다는 것을 알았 습니다 (순수한 기술적 문제는 아닙니다. 기술적 문제보다는 조직적인 문제입니다).
이 방법을 7-zip (Windows 인터페이스 및 터미널)과 함께 사용 하여 새로 생성 된 zip 파일의 압축을 유지했습니다.
모든 파일을 원하는 압축 방법을 사용하여 빈 폴더의 단일 zip 파일로 압축하여 시작하십시오 (예 :) ALL.zip
.
Test
그들의 집단 크기를 (이 자신의 압축을 고려) 확인 버튼을 :
Extract
또는 Copy
하여 추출 경로의 끝에 새 폴더의 이름 (예 :에 추가하는 동안 버튼을 plu_8MB
)ALL.zip
zip 내부에서 방금 추출한 파일 (삭제 실수로 인한 추출을 피함)을 삭제하고 다음 폴더 또는 파일 하위 세트로 이동하십시오.ALL.zip
을 독립 폴더로 추출한 후 해당 zip을 삭제하고 해당 폴더에서 터미널을여십시오 .유형:
for /F %i in ('dir /b') do "C:\Program Files\7-zip\7z.exe" a -tzip %i.zip %i
를 누르면 ENTER방금 추출한 각 폴더에 대한 zip 파일이 생성됩니다.