Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ArcBox

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.Tests

GUI 실행: 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 병렬 해제 워커 수 지정 (기본 자동)

GUI 명령행 verb (쉘 연동에서 사용)

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.exe

라이선스

ArcBox는 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를 보세요.

About

무료 압축 프로그램 — ZIP·7z·TAR 압축, RAR·ISO 등 20여 종 해제. 멀티코어 블록 병렬 Deflate. Windows / C# / WPF / .NET 10

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages