Windows용 압축 프로그램. C# / WPF, .NET 10.
| 압축 | 해제 | |
|---|---|---|
| ZIP (AES-256, ZIP64, 파일명 인코딩 자동 감지) | ✔ | ✔ |
| 7z (LZMA2, 솔리드, 헤더 암호화, 분할 볼륨) | ✔ | ✔ |
| TAR, TAR.GZ, TAR.BZ2, TAR.XZ, TAR.ZST | ✔ | ✔ |
| GZ, BZ2, XZ, ZST (단일 파일) | ✔ | ✔ |
| RAR, CAB, ISO, WIM, ARJ, LZH, CPIO, RPM, DEB, DMG, VHD, MSI 등 | – | ✔ |
추가 기능
- 멀티코어: 압축 시 항상 전체 코어 사용(상한 64), 별도 설정 없음
- 고속 압축: jpg·mp4·zip·docx 등 이미 압축된 파일은 저장만 (기본 켜짐, 확장자 목록은 설정에서 편집)
- 기존 압축 파일 수정: ZIP·7z에 파일 추가, 삭제, 이름 바꾸기 (GUI 버튼·우클릭·Delete·F2, 창에 끌어다 놓기)
- 악성코드 검사(AMSI): 설치된 백신(Defender 등)으로 압축을 풀기 전에 파일 내용을 검사해 감지된 파일은 저장하지 않음. 기본은 '위험 형식만'(exe·dll·스크립트·매크로 문서·lnk 등, 앞 16 MB) 검사이며 설정에서 검사 안 함/모든 파일로 변경 가능. 풀지 않고 전체 검사(툴바·
arcboxc scan)도 가능 - 빠른 해제: ZIP은 워커 스레드(코어 수, 최대 8)가 항목을 나눠 동시에 풀고, 7z 등은 7z.dll을 직접 호출해 디코딩과 디스크 쓰기(스레드 여러 개)를 분리 (성능)
- 빠른 zip 압축: 파일을 1 MB 블록으로 나눠 모든 코어에서 동시에 Deflate(pigz 방식). 7z와 암호 zip은 7z.dll 직접 호출로 읽은 바이트 기준 진행률 표시 (성능)
- 이미지·텍스트 미리보기, 한글 파일명 인코딩 자동 감지, 자동 폴더 풀기
측정 스크립트와 원본 결과가 bench/에 있습니다. 누구나 같은 방법으로 다시 잴 수 있습니다.
powershell -ExecutionPolicy Bypass -File bench\New-BenchmarkData.ps1
powershell -ExecutionPolicy Bypass -File bench\Invoke-Benchmark.ps1측정 환경 Intel Xeon 6517P (16코어 32스레드), 64 GB RAM, Windows 11 IoT Enterprise 26200 데이터셋 8,004개 파일 / 878 MiB (텍스트 8,000개 + 200 MB 이진 파일 4개, 고정 씨앗값) 방법 예열 1회를 버리고 3회 측정한 중앙값. 해제 결과는 파일 수와 총 바이트를 원본과 대조해 검증
| 항목 | ArcBox | 반디집 |
|---|---|---|
| ZIP 압축 | 1.98초 (619 MB) | 3.88초 (619.8 MB) |
| ZIP 해제 — ArcBox가 만든 아카이브 | 3.69초 | 4.62초 |
| ZIP 해제 — 반디집이 만든 아카이브 | 3.63초 | 4.40초 |
| 7z 해제 | 4.24초 | 5.03초 |
자기가 만든 아카이브를 자기가 푸는 것만 재면 의미가 없어서, 반디집이 만든 zip을 양쪽이 각각 푸는 항목을 따로 두었습니다.
ArcBox 해제 수치는 악성코드 검사 기본값(위험 형식만)에서 잰 값입니다. 검사를 끄면 ZIP 3.74초·7z 4.15초로 거의 같고, 모든 파일을 검사하면 ZIP 5.32초·7z 6.16초로 느려집니다.
- 결과는 환경에 따라 달라집니다. 코어가 적으면 병렬화 이득이 줄고, 디스크가 느리면 도구 간 차이가 좁혀집니다.
- 반디집 에디션이 결과에 기록되지 않았습니다. 무료(Standard)판은 압축 스레드가 16개로 제한되고 프로페셔널은 64개까지 씁니다. 32스레드 환경이었으므로 압축 항목은 ArcBox에 유리했을 수 있습니다. 해제 항목은 이 제한과 무관합니다.
- 파일 캐시가 더운 상태입니다. 반복 실행이라 원본과 아카이브가 OS 캐시에 올라가 있습니다.
- 첫 실행은 훨씬 느립니다. .NET 준비와 백신의 최초 검사 때문이며, 그래서 예열 1회를 버립니다. 실제로 전체 검사 항목의 1회차는 66초, 이후 5.3초였습니다.
- PC 한 대에서 잰 결과입니다. 자세한 한계는 bench/README.md에 적어두었습니다.
src/ArcBox.Core 엔진 라이브러리 (7z.dll + SharpCompress + ZstdSharp)
src/ArcBox.Cli 명령줄 도구 arcboxc a|u|d|x|l|t|scan (설치 시 {app}\cli\arcboxc.exe)
src/ArcBox.App WPF GUI (탐색기형 창, 미리보기, 드래그 앤 드롭, 쉘 연동)
tests/ xUnit 테스트
setup/ArcBox.iss Inno Setup 설치 스크립트
scripts/publish.ps1 self-contained win-x64 배포 빌드
엔진 배분:
| 포맷 | 읽기 | 쓰기 |
|---|---|---|
| ZIP | SharpCompress (중앙 디렉터리를 직접 읽어 CP949/Shift-JIS/GBK 등 자동 판별, 워커 스레드 병렬 해제) | 자체 라이터 + 블록 병렬 Deflate (.NET zlib, pigz 방식, 1 MB 블록); 암호 지정 시 7z.dll 직접 호출 (AES-256), 분할 볼륨은 SevenZipSharp |
| 7z, RAR, CAB, ISO, WIM, … | 7z.dll 직접 호출 (IInArchive + 쓰기 스레드 분리) | 7z.dll 직접 호출 (7z만; 분할 볼륨은 SevenZipSharp 경로) |
| TAR 계열, GZ/BZ2/ZST | SharpCompress + ZstdSharp | SharpCompress + ZstdSharp |
| XZ, TAR.XZ | SharpCompress | 7z.dll (XZ 인코더) |
dotnet build ArcBox.slnx
dotnet test tests/ArcBox.Core.TestsGUI 실행: src\ArcBox.App\bin\Debug\net10.0-windows\ArcBox.exe
arcboxc a backup.7z D:\docs -p secret -eh # 7z, 암호 + 파일명 암호화
arcboxc a photos.zip D:\photos -l 3 # 빠른 ZIP
arcboxc a big.7z D:\video -v 700m # 700 MB 분할
arcboxc x legacy.zip -o D:\out --subfolder auto # 인코딩 자동 감지, 폴더 자동 생성
arcboxc x jp.zip -cp 932 # 파일명 코드페이지 강제
arcboxc u backup.7z newfile.txt --into docs # 기존 압축 파일에 추가
arcboxc d backup.7z "docs/*.log" # 항목 삭제
arcboxc l archive.rar
arcboxc t archive.zip
arcboxc scan download.zip # 풀지 않고 백신(AMSI) 검사
arcboxc x download.zip --scan off # 검사 생략 (off | risky | all, 기본 risky)
arcboxc x big.zip -t 8 # ZIP 병렬 해제 워커 수 지정 (기본 자동)ArcBox.exe open <archive> 창에서 열기
ArcBox.exe x-here <archive> 압축 파일이 있는 폴더에 풀기
ArcBox.exe x-smart <archive> 파일이 여러 개면 압축 파일 이름의 폴더를 만들어 풀기
ArcBox.exe x-to <archive> 풀 위치 대화상자
ArcBox.exe test <archive>
ArcBox.exe add <paths...> 새 압축 대화상자
ArcBox.exe add-zip|add-7z <paths...> 기본 설정으로 바로 압축
ArcBox.exe register-shell [--menu] [--assoc] HKCU 쉘 연동 등록 (설치 프로그램이 호출)
ArcBox.exe unregister-shell
쉘 연동은 현재 사용자(HKCU)에만 등록되며 관리자 권한이 필요 없습니다. Windows 11에서는 "더 많은 옵션 표시" 메뉴에 나타납니다.
powershell -ExecutionPolicy Bypass -File scripts\publish.ps1
iscc setup\ArcBox.iss # Inno Setup 6 필요 → artifacts\ArcBox-0.1.0-setup.exeArcBox는 Apache License 2.0으로 배포됩니다. 전문은 LICENSE를 보세요.
| 구성요소 | 라이선스 |
|---|---|
7-Zip 7z.dll (Igor Pavlov) |
LGPL v2.1+ / unRAR 제한 |
| Squid-Box.SevenZipSharp | LGPL v3.0 |
| SharpCompress | MIT |
| ZstdSharp.Port | BSD 3-Clause |
| CommunityToolkit.Mvvm | MIT |
| System.CommandLine | MIT |
LGPL 구성요소는 모두 동적 링크이며, 이 저장소에는 바이너리가 들어 있지 않습니다(빌드 시 NuGet에서 받습니다).
설치 파일에는 x64\7z.dll과 함께 라이선스 전문이 x64\License.7z.txt로 동봉됩니다.
자세한 고지는 NOTICE를 보세요.