Denne artikel er en spejling af maskinoversættelse, klik venligst her for at springe til den oprindelige artikel.

Udsigt: 11568|Svar: 2

[Kilde] [Egentlig kamp]. NET/C# kalder 7z dekompression via kommandolinjen

[Kopier link]
Opslået den 30-4-2022 17:46:24 | | | |
Krav: Projektet skal dekomprimere eller komprimere den uploadede komprimerede pakke, hvilket generelt kan opnås via WinRAR, men vi skal bruge programmeringsmetoder til at implementere det, og det er umuligt manuelt at dekomprimere filen. Da WinRAR er opkrævet, kan vi bruge .NET/C# til at kalde 7z ved at udføre kommandolinjeoperationer for at opfylde vores behov.

Anmeldelse:

.net/c# for at hente filinformationen 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# bruger ICSharpCode.SharpZipLib.dll til at komprimere og dekomprimere filer/mapper
https://www.itsvse.com/thread-3726-1-1.html
7-Zip er en filarkiver med en høj komprimeringsratio. 7-Zip er open source og freeware. Størstedelen af koden er licenseret under GNU LGPL. Nogle dele af koden er licenseret under BSD 3-betingelserne. Nogle dele af koden har også unRAR-licensbegrænsninger.

Downloadadresse:Hyperlink-login er synlig., download- og installationstrinene er udeladt (denne artikel er installeret under mappen :D:\360Downloads)

7-Zip kommandolinjeparametrene er som følger:


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

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

<Commands>
  a : Tilføj filer til arkivet
  b : Benchmark
  d : Slet filer fra arkivet
  e : Udtræk filer fra arkivet (uden at bruge mappenavne)
  h : Beregn hashværdier for filer
  i: Vis information om understøttede formater
  l : Liste over arkivets indhold
  rn : Omdøb filer i arkivet
  t : Test arkivets integritet
  u : Opdater filer til arkiv
  x : eXtract-filer med fulde stier

<Switches>
  -- : Stopkontakter 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] : sæt output-logniveau
  -BD: Deaktiver statusindikator
  -BS{o|e|p}{0|1|2} : sæt outputstrøm for output/error/progress-linjen
  -BT: vis eksekveringstidsstatistikker
  -i[r[-|0]]{@listfile|! wildcard} : Inkluder filnavne
  -m{Parameters} : sæt komprimeringsmetode
    -mmt[N] : sæt antal CPU-tråde
    -mx[N] : indstil kompressionsniveau: -mx1 (hurtigst) ... -mx9 (ultra)
  -o{Directory} : set Output directory
  -p{Password} : sæt Password
  -r[-|0] : Rekursive undermapper til navnesøgning
  -sa{a|e|s} : sæt Arkivnavn-tilstand
  -scc{UTF-8| WIN| DOS} : sæt karaktersættet til konsolindgang/output
  -scs{UTF-8| UTF-16LE| UTF-16BE| WIN| DOS| {id}} : sæt karaktersæt for listefiler
  -scrc[CRC32| CRC64| SHA1| SHA256|*] : sæt hashfunktion for x, e, h-kommandoer
  -sdel : slet filer efter komprimering
  -seml[.] : send arkiv via e-mail
  -sfx[{name}] : Opret SFX-arkiv
  -si[{name}] : læs data fra STDIN
  -slp : sæt Large Pages-tilstand
  -slt : vis tekniske oplysninger for l (Liste) kommando
  -SNH : gem hårde links som links
  -SNL : gem symbolske links som links
  -sni : gem NT-sikkerhedsinformation
  -sns[-] : gem NTFS alternative strømme
  -so: skriv data til STDOUT
  -SPD : deaktiver wildcard-matching for filnavne
  -SPE : eliminer duplikering af rodmappen for udparcel-kommandoen
  -SPF : brug fuldt kvalificerede filstier
  -ssc[-] : sæt følsom kabinetstilstand
  -sse : stop arkivoprettelsen, hvis det ikke kan åbne en inputfil
  -ssp: ændr ikke sidste adgangstidspunkt for kildefiler under arkivering
  -ssw : komprimer delte filer
  -stl : sæt arkivets tidsstempel fra den senest ændrede fil
  -stm{HexMask} : sæt CPU-trådens affinitetsmaske (hexadecimalt tal)
  -stx{Type} : ekskludér arkivtype
  -t{Type} : Sæt type arkiv
  -u[-][p#][q#][r#][x#][y#][z#][!newArchiveName] : Opdateringsmuligheder
  -v{Size}[b|k|m|g] : Opret volumener
  -w[{path}] : tildel Arbejdsmappe. Tom sti betyder en midlertidig mappe
  -x[r[-|0]]{@listfile|! wildcard} : eXclude filnavne
  -y : antag Ja på alle forespørgsler
Komprimer mapper med 7z

Kommandoen er som følger:


På grund af tilføjelsen af -sdel-parameteren slettes zh-mappen automatisk, når komprimeringen er fuldført. Lad os teste den komprimerede fil med WinRAR, som vist nedenfor:



Pak filen ud med 7z

Kommandoen er som følger:


Dekompressionen fuldføres som vist i figuren nedenfor:



.NET/C# kalder 7z dekompression via kommandolinjen

Hvordan bruger jeg .NET/C#-kode til at udføre kommandolinjen? Koden er som følger:

(Slut)




Tidligere:65 kildekode-downloadsider
Næste:[Egentlig kamp]. NET/C# fastsætter en timeout-tid for en metode
 Udlejer| Opslået den 30-4-2022 kl. 17:49:29 |
e Udpakning af filer (alle komprimerede filer dekomprimeres til samme mappe uden at opretholde den oprindelige mappestruktur)
# Pak filen ud til den aktuelle mappe
7z e archive.zip
# Pak filen ud til mappen e:\testunzip
7z e archive.zip -oe:\testunzip
# Udpak alle PNG-filer til mappen e:\testunzip
7z e archive.zip -oe:\testunzip *.png -r

x Pak filen ud (behold den oprindelige mappestruktur)
# Pak filen ud til den aktuelle mappe
7z x archive.zip
# Pak filen ud til mappen e:\testunzip
7z x archive.zip -oe:\testunzip
# Udpak alle PNG-filer til mappen e:\testunzip
7z x archive.zip -oe:\testunzip *.png -r

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

-ao Sådan håndteres filer med samme navn
# -aoa overskriver filen med samme navn
7z x archive.zip -aoa
# -aos Spring filen med samme navn over
# -aou omdøber arkivet til samme navn
# -aot omdøber filer i den udpakkede mappe med samme navn

d Slet filerne inde i pakken
# Slet alle filer med .bak-endelsen i archive.zip
7z d archive.zip *.bak -r

RN omdøber filen inde i pakken
# Omdøb filen 1.png 1_new.png 2.png mappe 2_new.png\
7z lige nu archive.7z 1.png 1_new.png 2.png mappe 2_new.png\
Opslået den 30-4-2022 kl. 20:05:18 |
Lær at lære.
Ansvarsfraskrivelse:
Al software, programmeringsmaterialer eller artikler udgivet af Code Farmer Network er kun til lærings- og forskningsformål; Ovenstående indhold må ikke bruges til kommercielle eller ulovlige formål, ellers skal brugerne bære alle konsekvenser. Oplysningerne på dette site kommer fra internettet, og ophavsretstvister har intet med dette site at gøre. Du skal slette ovenstående indhold fuldstændigt fra din computer inden for 24 timer efter download. Hvis du kan lide programmet, så understøt venligst ægte software, køb registrering og få bedre ægte tjenester. Hvis der er nogen overtrædelse, bedes du kontakte os via e-mail.

Mail To:help@itsvse.com