Acest articol este un articol oglindă al traducerii automate, vă rugăm să faceți clic aici pentru a sări la articolul original.

Vedere: 11568|Răspunde: 2

[Sursă] [Luptă propriu-zisă]. NET/C# apelează la decompresie 7z prin linia de comandă

[Copiază linkul]
Postat la 30-04-2022 17:46:24 | | | |
Cerințe: Proiectul trebuie să decomprime sau să comprime pachetul comprimat încărcat, ceea ce poate fi realizat în general prin WinRAR, dar trebuie să folosim metode de programare pentru a implementa acest lucru, iar fișierul este imposibil să se decomprime manual. Deoarece WinRAR este taxabil, putem folosi .NET/C# pentru a chema 7z efectuând operațiuni de linie de comandă pentru a ne satisface nevoile.

Recenzie:

.net/c# pentru a obține informațiile fișierului în pachetul zip
https://www.itsvse.com/thread-4831-1-1.html

Metoda de decomprimare zip prin încapsulare Java
https://www.itsvse.com/thread-7750-1-1.html

C# folosește ICSharpCode.SharpZipLib.dll pentru a comprima și decomprima fișierele/folderele
https://www.itsvse.com/thread-3726-1-1.html
7-Zip este un arhivator de fișiere cu un raport de compresie ridicat. 7-Zip este open-source și freeware. Majoritatea codului este licențiat sub GNU LGPL. Unele părți ale codului sunt licențiate sub Termenii BSD 3. Unele părți ale codului au și restricții de licențiere unRAR.

Adresă de descărcare:Autentificarea cu hyperlink este vizibilă., pașii de descărcare și instalare sunt omiși (acest articol este instalat în directorul :D:\360Downloads)

Parametrii liniei de comandă 7-Zip sunt următorii:


7-Cap 21.07 (x64) : Copyright (c) 1999-2021 Igor Pavlov : 2021-12-26

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

<Commands>
  a : Adaugă fișiere la arhivă
  b : Reperă
  d : Șterge fișierele din arhivă
  e : Extragere fișiere din arhivă (fără a folosi nume de directoare)
  h : Calcularea valorilor hash pentru fișiere
  i : Afișează informații despre formatele suportate
  l : Lista conținutului arhivei
  Momentan: Redenumirea fișierelor în arhivă
  t : Integritatea testării arhivei
  u : Actualizează fișierele la arhivare
  x : fișiere eXtract cu căi complete

<Switches>
  -- : Opriți întrerupătoarele și @listfile analiza
  -ai[r[-|0]]{@listfile|! wildcard} : Include arhive
  -ax[r[-|0]]{@listfile|! wildcard} : arhive eXclude
  -ao{a|s|t|u} : setează modul de suprascriere
  -an : dezactivează câmpul archive_name
  -bb[0-3] : setați nivelul logaritmic de ieșire
  -bd : dezactivează indicatorul de progres
  -bs{o|e|p}{0|1|2} : setați fluxul de ieșire pentru linia de ieșire/eroare/progres
  -BT : arată statisticile timpului de execuție
  -i[r[-|0]]{@listfile|! wildcard} : Include numele fișierelor
  -m{Parametri} : setare Metoda compresiei
    -mmt[N] : număr setat de fire CPU
    -mx[N] : setat nivelul compresiei: -mx1 (cel mai rapid) ... -mx9 (ultra)
  -o{Directory} : setează Directorul de ieșire
  -p{Parolă} : setați Parolă
  -r[-|0] : Subdirectoare recursive pentru căutarea numelor
  -sa{a|e|s} : setează modul Nume Arhivă
  -scc{UTF-8| CÂȘTIG| DOS} : setează caractere pentru input/output pe consolă
  -scs{UTF-8| UTF-16LE| UTF-16BE| CÂȘTIG| DOS| {id}} : set de caractere pentru fișiere de listă
  -scrc[CRC32| CRC64| SHA1| SHA256|*] : setează funcția hash pentru comenzile x, e, h
  -sdel : șterge fișiere după compresie
  -seml[.] : trimite arhiva prin email
  -sfx[{name}] : Creează arhivă SFX
  -si[{name}] : citește date din stdin
  -slp : setează modul Pagini Mari
  -slt : afișează informații tehnice pentru comanda l (Listă)
  -SNH: Stochează legături directe ca linkuri
  -SNL : Stochează legături simbolice ca linkuri
  -sni : stochează informații de securitate NT
  -sns[-] : stochează fluxuri alternative NTFS
  -deci : scrie date în stdout
  -SPD : dezactivează potrivirea wildcard-urilor pentru numele fișierelor
  -SPE : elimină duplicarea folderului rădăcină pentru comanda extract
  -SPF : Utilizează căi de fișier complet calificate
  -SSC[-] : setați modul sensibil de carcască
  -sse : opriți crearea arhivei, dacă nu poate deschide un fișier de input
  -ssp : nu schimbați timpul de ultimă accesare al fișierelor sursă în timpul arhivării
  -ssw : comprimă fișierele partajate
  -stl : setează timestamp-ul arhivelor din cel mai recent fișier modificat
  -stm{HexMask} : setează masca de afinitate a firului CPU (număr hexazecimal)
  -stx{Type} : exclude tipul de arhivă
  -t{Type} : Set tip de arhivă
  -u[-][p#][q#][r#][x#][y#][z#][!newArchiveName] : Opțiuni de actualizare
  -v{Size}[b|k|m|g] : Creează volume
  -w[{path}] : atribuie directorul de lucru. Calea goală înseamnă un director temporar
  -x[r[-|0]]{@listfile|! wildcard} : eXclude nume de fișiere
  -y : presupune Da la toate întrebările
Comprimă folderele cu 7z

Comanda este următoarea:


Datorită adăugării parametrului -sdel, folderul zh este șters automat când compresia este finalizată. Să testăm fișierul comprimat folosind WinRAR, așa cum se arată mai jos:



Decomprimă fișierul cu 7z

Comanda este următoarea:


Decompresia se realizează așa cum se arată în figura de mai jos:



.NET/C# apelează la decompresie 7z prin linia de comandă

Cum folosesc codul .NET/C# pentru a executa linia de comandă? Codul este următorul:

(Sfârșit)




Precedent:65 de site-uri de descărcare a codului sursă
Următor:[Luptă propriu-zisă]. NET/C# stabilește un timp de timeout pentru o metodă
 Proprietarul| Postat la 2022-4-30 17:49:29 |
e Decomprimă fișierele (toate fișierele comprimate sunt decomprimate în același director, fără a menține structura originală a directorelor)
# Decomprimă fișierul în directorul curent
7z e archive.zip
# Decomprimă fișierul în directorul e:\testunzip
7z e archive.zip -oe:\testunzip
# Decomprimă toate fișierele PNG în directorul e:\testunzip
7z e archive.zip -oe:\testunzip *.png -r

x Decomprimă fișierul (păstrează structura originală a directorului)
# Decomprimă fișierul în directorul curent
7z x archive.zip
# Decomprimă fișierul în directorul e:\testunzip
7z x archive.zip -oe:\testunzip
# Decomprimă toate fișierele PNG în directorul e:\testunzip
7z x archive.zip -oe:\testunzip *.png -r

L Vezi lista tuturor fișierelor din pachet
7z l archive.zip

-ao Cum sunt gestionate fișierele cu același nume
# -AOA suprascrie fișierul cu același nume
7z x archive.zip -AOA
# -aos Sari peste dosarul cu același nume
# -Aou redenumește arhiva cu același nume
# -AOT redenumește fișierele din directorul extras cu același nume

d Șterge fișierele din pachet
# Șterge toate fișierele cu sufixul .bak în archive.zip
7z d archive.zip *.bak -r

RN redenumește fișierul din interiorul pachetului
# Redenumește fișierul 1.png 1_new.png 2.png folder 2_new.png\
7Z acum archive.7z 1.png 1_new.png 2.png folder\2_new.png
Postat la 30-04-2022, 20:05:18 |
Învață să înveți.
Disclaimer:
Tot software-ul, materialele de programare sau articolele publicate de Code Farmer Network sunt destinate exclusiv scopurilor de învățare și cercetare; Conținutul de mai sus nu va fi folosit în scopuri comerciale sau ilegale, altfel utilizatorii vor suporta toate consecințele. Informațiile de pe acest site provin de pe Internet, iar disputele privind drepturile de autor nu au legătură cu acest site. Trebuie să ștergi complet conținutul de mai sus de pe calculatorul tău în termen de 24 de ore de la descărcare. Dacă îți place programul, te rugăm să susții software-ul autentic, să cumperi înregistrarea și să primești servicii autentice mai bune. Dacă există vreo încălcare, vă rugăm să ne contactați prin e-mail.

Mail To:help@itsvse.com