이 글은 기계 번역의 미러 문서이며, 원본 기사로 바로 이동하려면 여기를 클릭해 주세요.

보기: 11568|회답: 2

[출처] [실제 전투]. NET/C#은 명령줄을 통해 7z 압축 해제를 호출합니다

[링크 복사]
2022-4-30 17:46:24에 게시됨 | | | |
요구사항: 프로젝트는 업로드된 압축 패키지를 압축 해제하거나 압축해야 하며, 이는 일반적으로 WinRAR로 수행할 수 있지만, 이를 구현하려면 프로그래밍 방법을 사용해야 하며, 파일을 수동으로 압축 해제하는 것은 불가능합니다. WinRAR이 유료 기능이기 때문에, 명령줄 작업을 수행해 .NET/C#을 사용해 7z를 호출할 수 있습니다.

복습:

.net/c# 파일을 ZIP 패키지에서 얻기 위해
https://www.itsvse.com/thread-4831-1-1.html

Java encapsulation zip unzip 메서드
https://www.itsvse.com/thread-7750-1-1.html

C#은 파일/폴더를 압축하고 해제하는 데 ICSharpCode.SharpZipLib.dll을 사용합니다
https://www.itsvse.com/thread-3726-1-1.html
7-Zip은 높은 압축률을 가진 파일 아카이버입니다. 7-Zip은 오픈소스이자 프리웨어입니다. 대부분의 코드는 GNU LGPL 하에 라이선스되어 있습니다. 코드의 일부 부분은 BSD 3 조건에 따라 라이선스되어 있습니다. 코드 일부에는 unRAR 라이선스 제한도 포함되어 있습니다.

다운로드 주소:하이퍼링크 로그인이 보입니다., 다운로드 및 설치 단계는 생략되어 있습니다(이 문서는 :D:\360Downloads 디렉터리 아래에 설치되어 있습니다)

7-Zip 명령줄 매개변수는 다음과 같습니다:


7-Zip 21.07 (x64) : 저작권 (c) 1999-2021 이고르 파블로프 : 2021-12-26

Usage: 7z <command> [<switches>...] <archive_name> [<file_names>...] [@listfile]

<Commands>
  a : 파일 파일 추가하기
  b : 벤치마크
  d : 아카이브에서 파일 삭제
  e : 아카이브에서 파일 추출 (디렉터리 이름 사용 불필요)
  h : 파일의 해시 값 계산
  i : 지원되는 형식에 대한 정보 표시
  l : 아카이브 목록
  rn : 아카이브 파일 이름 변경
  t : 아카이브의 테스트 무결성
  u : 파일을 아카이브로 업데이트하세요
  x : 전체 경로가 포함된 eXtract 파일

<Switches>
  -- : 정지 스위치와 @listfile 파싱
  -아이[r[-0]]{@listfile|! 와일드카드} : 아카이브 포함
  -ax[r[-|0]]{@listfile|! 와일드카드} : eXclude 아카이브
  -ao{a|s|t|u} : set Overwrite mode
  -an : archive_name 필드 비활성화
  -bb[0-3] : 출력 로그 레벨 설정
  -bd : 진행 표시기 비활성화
  -bs{o|e|p}{0|1|2} : 출력/오류/진행 라인 출력 스트림 설정
  -bt : 실행 시간 통계 표시
  -아이[r[-|0]]{@listfile|! 와일드카드} : 파일 이름 포함
  -m{Parameters} : 집합 압축 방법
    -mmt[N] : 설정된 CPU 스레드 수
    -mx[N] : 압축 레벨 설정: -mx1 (가장 빠름) ... -mx9 (울트라)
  -o{Directory} : set Output directory
  -p{Password} : 비밀번호 설정
  -r[-|0] : 이름 검색을 위한 재귀 하위 디렉터리
  -sa{a|e|s} : set Archive name mode
  -scc{UTF-8| WIN| DOS} : 콘솔 입출력용 문자셋 설정
  -scs{UTF-8| UTF-16LE| UTF-16BE| WIN| DOS| {id}} : 리스트 파일에 대해 charset
  -scrc[CRC32| CRC64| SHA1| SHA256|*] : x, e, h 명령어에 대해 해시 함수를 설정하세요
  -SDEL : 압축 후 파일 삭제
  -seml[.] : 이메일로 아카이브 전송
  -sfx[{name}] : SFX 아카이브 생성
  -si[{name}] : stdin에서 데이터를 읽기
  -slp : Large Pages 모드 설정
  -slt : l(리스트) 명령에 대한 기술 정보 표시
  -snh : 하드 링크를 링크로 저장하세요
  -snl : 기호 링크를 링크로 저장하세요
  -SNI : NT 보안 정보 저장
  -sns[-] : NTFS 대체 스트림을 저장합니다
  -so : stdout에 데이터를 쓰기
  -SPD : 파일 이름에 대한 와일드카드 매칭 비활성화
  -SPE : 추출 명령어를 위한 루트 폴더 중복 제거
  -SPF : 완전 자격을 갖춘 파일 경로 사용
  -ssc[-] : 민감한 케이스 모드 설정
  -sse : 입력 파일을 열 수 없다면 아카이브 생성 중지
  -ssp : 아카이빙 중 소스 파일의 마지막 접근 시간을 변경하지 마세요
  -ssw : 공유 파일 압축
  -stl : 가장 최근에 수정된 파일에서 아카이브 타임스탬프 설정
  -stm{HexMask} : set CPU 스레드 친화성 마스크 (16진수 수)
  -stx{Type} : archive type 제외
  -t{Type} : 아카이브 유형 설정
  -u[-][p#][q#][r#][x#][y#][z#][!newArchiveName] : Update options
  -v{Size}[b|k|m|g] : 볼륨 생성
  -w[{path}] : 작업 디렉터리 할당. 빈 경로는 임시 디렉터리를 의미합니다
  -x[r[-|0]]{@listfile|! wildcard} : eXclude 파일명
  -y : 모든 쿼리에 대해 예라고 가정합니다
7z로 압축 폴더

명령어는 다음과 같습니다:


-sdel 파라미터가 추가되면서, 압축이 완료되면 zh 폴더가 자동으로 삭제됩니다. 아래에 보이는 대로 WinRAR로 압축된 파일을 테스트해 봅시다:



7z로 파일을 압축 해제하세요

명령어는 다음과 같습니다:


감압은 아래 그림과 같이 완료됩니다:



.NET/C#은 명령줄을 통해 7z 압축 해제를 호출합니다

.NET/C# 코드를 사용해 명령줄을 어떻게 실행하나요? 코드는 다음과 같습니다:

(끝)




이전의:65개의 소스 코드 다운로드 사이트
다음:[실제 전투]. NET/C#은 메서드에 대해 타임아웃 시간을 설정합니다
 집주인| 2022-4-30 17:49:29에 게시됨 |
압축 해제 파일(모든 압축 파일은 원래 디렉터리 구조를 유지하지 않고 동일한 디렉터리로 압축 해제됨)
# 파일을 현재 디렉터리로 압축 해제하세요
7z e archive.zip
# 파일을 e:\testunzip 디렉토리로 압축 해제하세요
7z e archive.zip -oe:\testunzip
# 모든 PNG 파일을 e:\testunzip 디렉터리로 압축 해제
7z e archive.zip -oe:\testunzip *.png -r

x 파일을 압축 해제(원래 디렉터리 구조 유지)
# 파일을 현재 디렉터리로 압축 해제하세요
7z x archive.zip
# 파일을 e:\testunzip 디렉토리로 압축 해제하세요
7z x archive.zip -oe:\testunzip
# 모든 PNG 파일을 e:\testunzip 디렉터리로 압축 해제
7z x archive.zip -oe:\testunzip *.png -r

l 패키지 내 모든 파일 목록 보기
7z l archive.zip

-ao 같은 이름의 파일이 어떻게 처리되는지에 대해
# -AOA가 같은 이름의 파일을 덮어씁니다
7z x archive.zip -AOA
# -aos 같은 이름의 파일은 건너뛰세요
# -아우가 같은 이름으로 아카이브의 이름을 바꾸었다
# -AOT는 추출된 디렉터리에서 같은 이름의 파일을 이름 변경합니다

d 패키지 내 파일을 삭제하세요
# .bak 접미사가 붙은 모든 파일을 삭제archive.zip
7z d archive.zip *.bak -r

RN은 패키지 내 파일 이름을 변경합니다
# 파일 이름 바꾸1.png 1_new.png 2.png 폴더\2_new.png
7z archive.7z 1.png 1_new.png 2.png 폴더\2_new.png
2022-4-30 20:05:18에 게시됨 |
배우는 법을 배우세요.
면책 조항:
Code Farmer Network에서 발행하는 모든 소프트웨어, 프로그래밍 자료 또는 기사는 학습 및 연구 목적으로만 사용됩니다; 위 내용은 상업적 또는 불법적인 목적으로 사용되지 않으며, 그렇지 않으면 모든 책임이 사용자에게 부담됩니다. 이 사이트의 정보는 인터넷에서 가져온 것이며, 저작권 분쟁은 이 사이트와는 관련이 없습니다. 위 내용은 다운로드 후 24시간 이내에 컴퓨터에서 완전히 삭제해야 합니다. 프로그램이 마음에 드신다면, 진짜 소프트웨어를 지원하고, 등록을 구매하며, 더 나은 진짜 서비스를 받아주세요. 침해가 있을 경우 이메일로 연락해 주시기 바랍니다.

Mail To:help@itsvse.com