Dit artikel is een spiegelartikel van machinevertaling, klik hier om naar het oorspronkelijke artikel te gaan.

Bekijken: 11568|Antwoord: 2

[Bron] [Echte gevechten]. NET/C# roept 7z-decompressie aan via de commandoregel

[Link kopiëren]
Geplaatst op 30-4-2022 17:46:24 | | | |
Eisen: Het project moet het geüploade gecomprimeerde pakket decomprimeren of comprimeren, wat meestal via WinRAR kan worden bereikt, maar we moeten programmeermethoden gebruiken om dit te implementeren, en het is onmogelijk om het bestand handmatig te decomprimeren. Omdat WinRAR in rekening kan worden gebracht, kunnen we .NET/C# gebruiken om 7z aan te roepen door commandoregelbewerkingen uit te voeren om aan onze behoeften te voldoen.

Recensie:

.net/c# om de bestandsinformatie in het zip-pakket te verkrijgen
https://www.itsvse.com/thread-4831-1-1.html

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

C# gebruikt ICSharpCode.SharpZipLib.dll om bestanden/mappen te comprimeren en te decomprimeren
https://www.itsvse.com/thread-3726-1-1.html
7-Zip is een bestandsarchiveerder met een hoge compressieverhouding. 7-Zip is open source en freeware. Het grootste deel van de code is gelicenseerd onder de GNU LGPL. Sommige delen van de code zijn gelicentieerd onder de BSD 3-voorwaarden. Sommige delen van de code hebben ook unRAR-licentiebeperkingen.

Downloadadres:De hyperlink-login is zichtbaar., de download- en installatiestappen zijn weggelaten (dit artikel is geïnstalleerd onder de map :D:\360Downloads)

De 7-Zip commandoregelparameters zijn als volgt:


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: Voeg bestanden toe aan archief
  b : Benchmark
  d : Bestanden uit het archief verwijderen
  e : Haal bestanden uit het archief (zonder directorynamen te gebruiken)
  h : Bereken hashwaarden voor bestanden
  i: Toon informatie over ondersteunde formaten
  l : Lijst van inhoud van het archief
  rn : Bestanden hernoemen in het archief
  t : Test de integriteit van het archief
  u : Werk bestanden bij naar het archief
  x : eXtract-bestanden met volledige paden

<Switches>
  -- : Stopschakelaars en @listfile parsen
  -ai[r[-|0]]{@listfile|! wildcard} : Archieven opnemen
  -ax[r[-|0]]{@listfile|! wildcard} : eXclude archieven
  -ao{a|s|t|u} : set Overwrite mode
  -an : schakel archive_name veld uit
  -bb[0-3] : stel output log level in
  -BD: Schakel voortgangsindicator uit
  -bs{o|e|p}{0|1|2} : stel outputstroom in voor output/error/progress-lijn
  -BT : toon uitvoeringstijdstatistieken
  -i[r[-|0]]{@listfile|! wildcard} : Bestandsnamen opnemen
  -m{Parameters} : verzamelde compressiemethode
    -mmt[N] : stel het aantal CPU-threads in
    -mx[N] : stel compressieniveau in: -mx1 (snelste) ... -mx9 (ultra)
  -o{Directory} : set Output directory
  -p{Wachtwoord} : stel Wachtwoord in
  -r[-|0] : Recurse subdirectories voor naamzoekopdrachten
  -sa{a|e|s} : stel Archiefnaammodus in
  -scc{UTF-8| WIN| DOS} : stel de charset in voor voor console input/output
  -scs{UTF-8| UTF-16LE| UTF-16BE| WIN| DOS| {id}} : stel charset in voor lijstbestanden
  -scrc[CRC32| CRC64| SHA1| SHA256|*] : stel de hashfunctie in voor x, e, h-commando's
  -sdel: verwijder bestanden na compressie
  -seml[.] : stuur archief per e-mail
  -sfx[{name}] : Maak SFX-archief aan
  -si[{name}] : lees gegevens van STDIN
  -slp : stel de modus Large Pages in
  -slt : toon technische informatie voor l (Lijst) commando
  -SNH : bewaar harde links als links
  -SNL : Sla symbolische links op als links
  -sni : opslag NT-beveiligingsinformatie
  -sns[-] : sla NTFS alternatieve stromen op
  -dus : schrijf data naar STDOUT
  -SPD : Schakel wildcard-matching uit voor bestandsnamen
  -SPE : Elimineer duplicatie van de rootmap voor het extract-commando
  -SPF : gebruik volledig gekwalificeerde bestandspaden
  -ssc[-] : stel de gevoelige case-modus in
  -SSE : stop met het maken van archiefen als het geen invoerbestand kan openen
  -ssp : verander de laatste toegangstijd van bronbestanden niet tijdens het archiveren
  -ssw : comprimer gedeelde bestanden
  -stl : stel archieftijdstempel in van het meest recent gewijzigde bestand
  -stm{HexMask} : stel CPU-thread affiniteitsmasker in (hexadecimale getal)
  -stx{Type} : sluit archieftype uit
  -t{Type} : Settype van archief
  -u[-][p#][q#][r#][x#][y#][z#][!newArchiveName] : Update-opties
  -v{Size}[b|k|m|g] : Maak volumes aan
  -w[{path}] : wijs Werkmap toe. Leeg pad betekent een tijdelijke map
  -x[r[-|0]]{@listfile|! wildcard} : eXclude bestandsnamen
  -y : ga ervan uit dat Ja is op alle zoekopdrachten
Comprimer mappen met 7z

Het commando is als volgt:


Door de toevoeging van de -sdel-parameter wordt de zh-map automatisch verwijderd wanneer de compressie is voltooid. Laten we het gecomprimeerde bestand testen met WinRAR, zoals hieronder weergegeven:



Pak het bestand uit met 7z

Het commando is als volgt:


De decompressie wordt voltooid zoals weergegeven in de onderstaande figuur:



.NET/C# roept 7z-decompressie aan via de commandoregel

Hoe gebruik ik .NET/C#-code om de opdrachtregel uit te voeren? De code is als volgt:

(Einde)




Vorig:65 broncode downloadsites
Volgend:[Echte gevechten]. NET/C# stelt een time-out tijd in voor een methode
 Huisbaas| Geplaatst op 30-4-2022 17:49:29 |
e Unzip files (alle gecomprimeerde bestanden worden gedecomprimeerd naar dezelfde map, zonder de oorspronkelijke mapstructuur te behouden)
# Pak het bestand uit naar de huidige map
7z e archive.zip
# Pak het bestand uit in de map e:\testunzip
7z e archive.zip -oe:\testunzip
# Pak alle PNG-bestanden uit naar de e:\testunzip-map
7z e archive.zip -oe:\testunzip *.png -r

x Pak het bestand uit (behoud de oorspronkelijke mapstructuur)
# Pak het bestand uit naar de huidige map
7z x archive.zip
# Pak het bestand uit in de map e:\testunzip
7z x archive.zip -oe:\testunzip
# Pak alle PNG-bestanden uit naar de e:\testunzip-map
7z x archive.zip -oe:\testunzip *.png -r

l Bekijk een lijst van alle bestanden in het pakket
7z L archive.zip

-ao Hoe bestanden met dezelfde naam worden behandeld
# -aoa overschrijft het bestand met dezelfde naam
7Z x archive.zip -AOA
# -aos Sla het bestand met dezelfde naam over
# -aou hernoemt het archief met dezelfde naam
# -aot hernoemt bestanden in de uitgepakte map met dezelfde naam

d Verwijder de bestanden in het pakket
# Verwijder alle bestanden met het .bak achtervoegsel in de archive.zip
7z d archive.zip *.bak -r

RN hernoemt het bestand binnen het pakket
# Hernoem het bestand 1.png 1_new.png 2.png map 2_new.png\
7z nu archive.7z 1.png 1_new.png 2.png map 2_new.png\
Geplaatst op 30-4-2022 20:05:18 |
Leer leren.
Disclaimer:
Alle software, programmeermaterialen of artikelen die door Code Farmer Network worden gepubliceerd, zijn uitsluitend bedoeld voor leer- en onderzoeksdoeleinden; De bovenstaande inhoud mag niet worden gebruikt voor commerciële of illegale doeleinden, anders dragen gebruikers alle gevolgen. De informatie op deze site komt van het internet, en auteursrechtconflicten hebben niets met deze site te maken. Je moet bovenstaande inhoud volledig van je computer verwijderen binnen 24 uur na het downloaden. Als je het programma leuk vindt, steun dan de echte software, koop registratie en krijg betere echte diensten. Als er sprake is van een inbreuk, neem dan contact met ons op via e-mail.

Mail To:help@itsvse.com