Denna artikel är en spegelartikel om maskinöversättning, klicka här för att hoppa till originalartikeln.

Utsikt: 11568|Svar: 2

[Källa] [Verklig strid]. NET/C# anropar 7z-dekompression via kommandoraden

[Kopiera länk]
Publicerad den 2022-4-30 17:46:24 | | | |
Krav: Projektet behöver dekomprimera eller komprimera det uppladdade komprimerade paketet, vilket generellt kan göras via WinRAR, men vi måste använda programmeringsmetoder för att implementera det, och det är omöjligt att manuellt dekomprimera filen. Eftersom WinRAR är debiterbart kan vi använda .NET/C# för att anropa 7z genom att utföra kommandoradsoperationer för att uppfylla våra behov.

Recension:

.net/c# för att hämta filinformationen i zip-paketet
https://www.itsvse.com/thread-4831-1-1.html

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

C# använder ICSharpCode.SharpZipLib.dll för att komprimera och dekomprimera filer/mappar
https://www.itsvse.com/thread-3726-1-1.html
7-Zip är en filarkivator med hög komprimeringsgrad. 7-Zip är öppen källkod och freeware. Det mesta av koden är licensierad under GNU LGPL. Vissa delar av koden licensieras under BSD 3-villkoren. Vissa delar av koden har också licensbegränsningar för unRAR.

Nedladdningsadress:Inloggningen med hyperlänken är synlig., nedladdnings- och installationsstegen utelämnas (denna artikel är installerad under katalogen :D:\360Downloads)

Kommandoradsparametrarna för 7-Zip är följande:


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 : Lägg till filer i arkivet
  b : Benchmark
  d : Radera filer från arkivet
  e : Extrahera filer från arkivet (utan att använda katalognamn)
  h : Beräkna hashvärden för filer
  i: Visa information om stödda format
  l : Lista arkivets innehåll
  rn : Byt namn på filer i arkivet
  t : Testa arkivets integritet
  u: Uppdatera filer till arkivet
  x : eXtract-filer med fullständiga sökvägar

<Switches>
  -- : Stoppbrytare och @listfile tolkning
  -ai[r[-|0]]{@listfile|! wildcard} : Inkludera arkiv
  -ax[r[-|0]]{@listfile|! wildcard} : eXclude-arkiv
  -ao{a|s|t|u} : set Overwrite mode
  -an: inaktivera archive_name fält
  -bb[0-3] : ställ in utgångsloggnivå
  -BD: inaktivera framstegsindikator
  -BS{o|e|p}{0|1|2} : Sätt utgångsström för utgång/fel/framstegslinje
  -BT : visa exekveringstidsstatistik
  -i[r[-|0]]{@listfile|! wildcard} : Inkludera filnamn
  -m{Parameters} : set compression Method
    -mmt[N] : ställ in antal CPU-trådar
    -mx[N] : ställ kompressionsnivå: -mx1 (snabbast) ... -mx9 (ultra)
  -o{Directory} : set Output directory
  -p{Password} : set Password
  -r[-|0] : Rekursunderkataloger för namnsökning
  -sa{a|e|s} : sätt Arkivnamnsläge
  -scc{UTF-8| WIN| DOS} : ställ in charset för för konsolens in- och utmatning
  -scs{UTF-8| UTF-16LE| UTF-16BE| WIN| DOS| {id}} : ställ in charset för listfiler
  -scrc[CRC32| CRC64| SHA1| SHA256|*] : sätt hashfunktion för x, e, h-kommandon
  -sdel: ta bort filer efter komprimering
  -seml[.] : skicka arkiv via e-post
  -sfx[{name}] : Skapa SFX-arkiv
  -si[{name}] : läs data från STDIN
  -slp : ställ in läget för stora sidor
  -slt : visa teknisk information för l (List) kommando
  -SNH : Spara hårda länkar som länkar
  -SNL: Lagra symboliska länkar som länkar
  -sni : lagra NT-säkerhetsinformation
  -sns[-]: lagra NTFS-alternativa strömmar
  -so: skriv data till stdout
  -SPD : inaktivera wildcard-matchning för filnamn
  -SPE : eliminera duplicering av rotmapp för extract-kommandot
  -SPF : använd fullt kvalificerade filsökvägar
  -ssc[-]: ställ in känsligt fallläge
  -sse : sluta skapa arkiv om det inte kan öppna någon inmatningsfil
  -ssp: ändra inte Last Access Time för källfiler vid arkivering
  -ssw : komprimera delade filer
  -stl : Ställ in arkivtidsstämpel från den senast modifierade filen
  -stm{HexMask} : sätt CPU-trådens affinitetsmask (hexadecimalt tal)
  -stx{Type} : uteslut arkivtyp
  -t{Type} : Uppsättningstyp av arkiv
  -u[-][p#][q#][r#][x#][y#][z#][!newArchiveName] : Uppdateringsalternativ
  -v{Size}[b|k|m|g] : Skapa volymer
  -w[{path}] : tilldela Arbetskatalog. Tom väg betyder en tillfällig katalog
  -x[r[-|0]]{@listfile|! wildcard} : eXclude filnamn
  -y : anta Ja på alla frågor
Komprimera mappar med 7z

Kommandot är följande:


På grund av tillägget av -sdel-parametern raderas zh-mappen automatiskt när komprimeringen är klar. Låt oss testa den komprimerade filen med WinRAR, som visas nedan:



Packa upp filen med 7z

Kommandot är följande:


Dekompressionen är slutförd enligt figuren nedan:



.NET/C# anropar 7z-dekomprimering via kommandoraden

Hur använder jag .NET/C#-kod för att köra kommandoraden? Koden är följande:

(Slut)




Föregående:65 källkodsnedladdningssajter
Nästa:[Verklig strid]. NET/C# sätter en timeout-tid för en metod
 Hyresvärd| Publicerad den 2022-4-30 17:49:29 |
e Packa upp filer (alla komprimerade filer dekomprimeras till samma katalog, utan att den ursprungliga katalogstrukturen bevaras)
# Packa upp filen till den aktuella katalogen
7z e archive.zip
# Packa upp filen till e:\testunzip-mappen
7z e archive.zip -oe:\testunzip
# Packa upp alla PNG-filer till e:\testunzip-katalogen
7z e archive.zip -oe:\testunzip *.png -r

x Packa upp filen (behåll den ursprungliga katalogstrukturen)
# Packa upp filen till den aktuella katalogen
7z x archive.zip
# Packa upp filen till e:\testunzip-mappen
7z x archive.zip -oe:\testunzip
# Packa upp alla PNG-filer till e:\testunzip-katalogen
7z x archive.zip -oe:\testunzip *.png -r

l Visa en lista över alla filer i paketet
7z L archive.zip

-ao Hur filer med samma namn hanteras
# -aoa skriver över filen med samma namn
7z x archive.zip -aoa
# -aos Hoppa över filen med samma namn
# -aou döper om arkivet till samma namn
# -aot byter namn på filer i den extraherade katalogen med samma namn

d Radera filerna i paketet
# Radera alla filer med .bak suffix i archive.zip
7z d archive.zip *.bak -r

RN byter namn på filen inuti paketet
# Döp om filen 1.png 1_new.png 2.png 2_new.png mapp\
7z just nu archive.7z 1.png 1_new.png 2.png mapp 2_new.png\
Publicerad den 2022-4-30 20:05:18 |
Lär dig att lära dig.
Friskrivning:
All programvara, programmeringsmaterial eller artiklar som publiceras av Code Farmer Network är endast för lärande- och forskningsändamål; Ovanstående innehåll får inte användas för kommersiella eller olagliga ändamål, annars kommer användarna att bära alla konsekvenser. Informationen på denna sida kommer från internet, och upphovsrättstvister har inget med denna sida att göra. Du måste helt radera ovanstående innehåll från din dator inom 24 timmar efter nedladdning. Om du gillar programmet, vänligen stöd äkta programvara, köp registrering och få bättre äkta tjänster. Om det finns något intrång, vänligen kontakta oss via e-post.

Mail To:help@itsvse.com