Denne artikkelen er en speilartikkel om maskinoversettelse, vennligst klikk her for å hoppe til originalartikkelen.

Utsikt: 11568|Svare: 2

[Kilde] [Faktisk kamp]. NET/C# kaller 7z-dekomprimering via kommandolinjen

[Kopier lenke]
Publisert 30.04.2022 17:46:24 | | | |
Krav: Prosjektet må dekomprimere eller komprimere den opplastede komprimerte pakken, noe som vanligvis kan gjøres via WinRAR, men vi må bruke programmeringsmetoder for å implementere det, og det er umulig å dekomprimere filen manuelt. Siden WinRAR er kostbart, kan vi bruke .NET/C# for å kalle 7z ved å utføre kommandolinjeoperasjoner for å dekke våre behov.

Anmeldelse:

.net/c# for å hente filinformasjonen i zip-pakken
https://www.itsvse.com/thread-4831-1-1.html

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

C# bruker ICSharpCode.SharpZipLib.dll for å komprimere og dekomprimere filer/mapper
https://www.itsvse.com/thread-3726-1-1.html
7-Zip er en filarkiver med høy komprimeringsgrad. 7-Zip er åpen kildekode og freeware. Mesteparten av koden er lisensiert under GNU LGPL. Noen deler av koden er lisensiert under BSD 3-vilkårene. Noen deler av koden har også unRAR-lisensbegrensninger.

Nedlastingsadresse:Innloggingen med hyperkoblingen er synlig., nedlastings- og installasjonsstegene er utelatt (denne artikkelen er installert under katalogen :D:\360Downloads)

7-Zip-kommandolinjens parametere er som følger:


7-Zip 21.07 (x64): Opphavsrett (c) 1999-2021 Igor Pavlov : 2021-12-26

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

<Commands>
  a : Legg til filer i arkivet
  b : Benchmark
  d: Slett filer fra arkivet
  e: Trekk ut filer fra arkivet (uten å bruke katalognavn)
  h : Beregn hashverdier for filer
  i: Vis informasjon om støttede formater
  l : Liste over innholdet i arkivet
  rn: Gi nytt navn på filer i arkivet
  t : Test integriteten til arkivet
  u: Oppdater filer til arkivet
  x : eXtract-filer med fullstendige stier

<Switches>
  -- : Stoppbrytere og @listfile parsing
  -ai[r[-|0]]{@listfile|! wildcard} : Inkluder arkiver
  -ax[r[-|0]]{@listfile|! wildcard} : eXclude arkiver
  -ao{a|s|t|u} : set Overwrite mode
  -an: deaktiver archive_name felt
  -bb[0-3] : sett utgangs-loggnivå
  -BD: Deaktiver fremdriftsindikator
  -bs{o|e|p}{0|1|2} : sett utgangsstrøm for output/error/progress-linjen
  -BT : vis utførelsestidsstatistikk
  -i[r[-|0]]{@listfile|! wildcard} : Inkluder filnavn
  -m{Parametere} : sett komprimeringsmetode
    -mmt[N] : sett antall CPU-tråder
    -mx[N] : satt kompresjonsnivå: -mx1 (raskeste) ... -mx9 (ultra)
  -o{Directory} : sett Output directory
  -p{Passord} : sett Passord
  -r[-|0] : Rekursive underkataloger for navnesøk
  -sa{a|e|s} : sett Arkivnavn-modus
  -scc{UTF-8| WIN| DOS} : sett karaktersett for for konsollinn-/utdata
  -scs{UTF-8| UTF-16LE| UTF-16BE| WIN| DOS| {id}} : sett karaktersett for listefiler
  -scrc[CRC32| CRC64| SHA1| SHA256|*] : sett hash-funksjonen for x, e, h-kommandoer
  -sdel: slett filer etter komprimering
  -seml[.] : send arkiv på e-post
  -sfx[{name}] : Opprett SFX-arkiv
  -si[{name}] : les data fra STDIN
  -slp : sett Large Pages-modus
  -slt : vis teknisk informasjon for l (Liste) kommando
  -SNH : lagre harde lenker som lenker
  -SNL: lagre symbolske lenker som lenker
  -sni : lagre NT-sikkerhetsinformasjon
  -sns[-] : lagre NTFS alternative strømmer
  -so: skriv data til STDOUT
  -SPD : Deaktiver wildcard-matching for filnavn
  -SPE : eliminer duplisering av rotmappen for extract-kommandoen
  -SPF: bruk fullt kvalifiserte filstier
  -ssc[-] : Sett sensitiv kabinettmodus
  -sse : slutt å opprette arkivet hvis det ikke kan åpne en inndatafil
  -ssp : ikke endre siste tilgangstid for kildefilene under arkivering
  -ssw : komprimer delte filer
  -stl : Sett arkivtidsstempel fra den siste endrede filen
  -stm{HexMask} : sett CPU-trådens affinitetsmaske (heksadesimalt tall)
  -stx{Type} : ekskluderer arkivtype
  -t{Type} : Setttype av arkiv
  -u[-][p#][q#][r#][x#][y#][z#][!newArchiveName] : Oppdateringsalternativer
  -v{Size}[b|k|m|g] : Lag volumer
  -w[{path}] : tildel arbeidskatalog. Tom sti betyr en midlertidig katalog
  -x[r[-|0]]{@listfile|! wildcard} : eXclude filnavn
  -y : anta Ja på alle forespørsler
Komprimer mapper med 7z

Kommandoen er som følger:


På grunn av tillegget av -sdel-parameteren slettes zh-mappen automatisk når komprimeringen er fullført. La oss teste den komprimerte filen med WinRAR, som vist nedenfor:



Pakk ut filen med 7z

Kommandoen er som følger:


Dekompresjonen er fullført som vist i figuren nedenfor:



.NET/C# kaller 7z dekomprimering via kommandolinjen

Hvordan bruker jeg .NET/C#-kode for å utføre kommandolinjen? Koden er som følger:

(Slutt)




Foregående:65 kildekode-nedlastingsnettsteder
Neste:[Faktisk kamp]. NET/C# setter en tidsavbruddstid for en metode
 Vert| Publisert 30.04.2020 17:49:29 |
e Pakk ut filer (alle komprimerte filer dekomprimeres til samme mappe, uten å vedlikeholde den opprinnelige mappestrukturen)
# Pakk ut filen til den nåværende mappen
7z e archive.zip
# Pakk ut filen til e:\testunzip-mappen
7z e archive.zip -oe:\testunzip
# Pakk ut alle PNG-filer til e:\testunzip-mappen
7z e archive.zip -oe:\testunzip *.png -r

x Pakk ut filen (behold den opprinnelige mappestrukturen)
# Pakk ut filen til den nåværende mappen
7z x archive.zip
# Pakk ut filen til e:\testunzip-mappen
7z x archive.zip -oe:\testunzip
# Pakk ut alle PNG-filer til e:\testunzip-mappen
7z x archive.zip -oe:\testunzip *.png -r

l Se en liste over alle filene i pakken
7z L archive.zip

-ao Hvordan filer med samme navn håndteres
# -aoa overskriver filen med samme navn
7z x archive.zip -aoa
# -aos Hopp over filen med samme navn
# -aou gir arkivet samme navn
# -aot gir nytt navn til filer i den utpakkede mappen med samme navn

d Slett filene i pakken
# Slett alle filer med .bak-suffikset i archive.zip
7z d archive.zip *.bak -r

RN gir filen nytt navn inne i pakken
# Gi filen nytt navn 1.png 1_new.png 2.png mappe 2_new.png\
7z archive.7z 1.png 1_new.png 2.png mappe 2_new.png\
Publisert 30.04.2022 20:05:18 |
Lær å lære.
Ansvarsfraskrivelse:
All programvare, programmeringsmateriell eller artikler publisert av Code Farmer Network er kun for lærings- og forskningsformål; Innholdet ovenfor skal ikke brukes til kommersielle eller ulovlige formål, ellers skal brukerne bære alle konsekvenser. Informasjonen på dette nettstedet kommer fra Internett, og opphavsrettstvister har ingenting med dette nettstedet å gjøre. Du må fullstendig slette innholdet ovenfor fra datamaskinen din innen 24 timer etter nedlasting. Hvis du liker programmet, vennligst støtt ekte programvare, kjøp registrering, og få bedre ekte tjenester. Hvis det foreligger noen krenkelse, vennligst kontakt oss på e-post.

Mail To:help@itsvse.com