Ta članek je zrcalni članek strojnega prevajanja, kliknite tukaj za skok na izvirni članek.

Pogled: 11568|Odgovoriti: 2

[Vir] [Dejanski boj]. NET/C# kliče dekompresijo 7z preko ukazne vrstice

[Kopiraj povezavo]
Objavljeno 30. 4. 2022 ob 17:46:24 | | | |
Zahteve: Projekt mora dekompresirati ali stisniti naložen stisnjen paket, kar je običajno mogoče doseči z WinRAR, vendar moramo uporabiti programske metode za implementacijo, poleg tega pa je nemogoče ročno dekompresirati datoteko. Ker je WinRAR zaračunljiv, lahko uporabimo .NET/C# za klic 7z z izvajanjem ukaznih operacij za izpolnitev naših potreb.

Pregled:

.NET/C# za pridobitev informacij o datoteki v zip paketu
https://www.itsvse.com/thread-4831-1-1.html

Java metoda zip unzip enkapsulacije
https://www.itsvse.com/thread-7750-1-1.html

C# uporablja ICSharpCode.SharpZipLib.dll za stiskanje in dekompresijo datotek/map
https://www.itsvse.com/thread-3726-1-1.html
7-Zip je arhivirnik datotek z visokim razmerjem stiskanja. 7-Zip je odprtokoden in brezplačen. Večina kode je licencirana pod GNU LGPL. Nekateri deli kode so licencirani pod pogoji BSD 3. Nekateri deli kode imajo tudi omejitve glede licenciranja unRAR.

Naslov za prenos:Prijava do hiperpovezave je vidna., koraki prenosa in namestitve so izpuščeni (ta članek je nameščen v mapi :D:\360Downloads)

Parametri ukazne vrstice 7-Zip so naslednji:


7-Zip 21.07 (x64) : Avtorske pravice (c) 1999-2021 Igor Pavlov : 26. 12. 2021

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

<Commands>
  a : Dodajte datoteke v arhiv
  b : Primerjalni indeks
  d : Izbriši datoteke iz arhiva
  e : Izvleček datotek iz arhiva (brez uporabe imen imenikov)
  h : Izračunajte zgoščene vrednosti za datoteke
  i : Prikaži informacije o podprtih formatih
  l : Seznam vsebine arhiva
  rn : Preimenuj datoteke v arhivu
  t : Testna integriteta arhiva
  u : Posodobi datoteke za arhiv
  x : eXtract datoteke s polnimi potmi

<Switches>
  -- : Stop stikala in @listfile razčlenjevanje
  -ai[r[-|0]]{@listfile|! Wildcard} : Vključite arhive
  -ax[r[-|0]]{@listfile|! wildcard} : eXclude archives
  -ao{a|s|t|u} : nastavi način prepisovanja
  -an : onemogoči archive_name polje
  -bb[0-3] : nastavi raven izhodnega loga
  -bd : onemogoči indikator napredka
  -bs{o|e|p}{0|1|2} : nastavi izhodni tok za vrstico output/error/progress
  -BT : prikaži statistiko časa izvajanja
  -I[r[-|0]]{@listfile|! Wildcard} : Vključite imena datotek
  -m{Parametri} : nastavi metodo stiskanja
    -mmt[N] : nastavi število niti procesorja
    -mx[N] : nastavi raven kompresije: -mx1 (najhitrejši) ... -mx9 (ultra)
  -o{Directory} : set Output directory
  -p{Password} : set Password
  -r[-|0] : Rekurzivni podimeniki za iskanje imen
  -sa{a|e|s} : nastavi način imena arhiva
  -scc{UTF-8| WIN| DOS} : nastavi znak za vhod/izhod v konzoli
  -scs{UTF-8| UTF-16LE| UTF-16BE| WIN| DOS| {id}} : set charset for list files
  -scrc[CRC32| CRC64| SHA1| SHA256|*] : nastavi zgoščevalno funkcijo za ukaze x, e, h
  -sdel : izbriši datoteke po stiskanju
  -seml[.] : pošljite arhiv po elektronski pošti
  -sfx[{name}] : Ustvari arhiv SFX
  -si[{name}] : preberi podatke iz stdin
  -slp : nastavi način Velike strani
  -slt : prikaži tehnične informacije za ukaz l (List)
  -snh : shrani trde povezave kot povezave
  -SNL : shrani simbolne povezave kot povezave
  -sni : shrani varnostne informacije NT
  -sns[-] : shrani NTFS alternativne tokove
  -Torej : Zapisuj podatke v STDOUT
  -SPD : onemogočite ujemanje z divjimi znaki za imena datotek
  -SPE : Odpravite podvajanje korenske mape za ukaz extract
  -SPF : uporabite popolnoma kvalificirane datotečne poti
  -ssc[-] : nastavi občutljiv primer načina
  -SSE: prenehajte z ustvarjanjem arhiva, če ne more odpreti neke vhodne datoteke
  -ssp : med arhiviranjem ne spreminjajte časa zadnjega dostopa izvornih datotek
  -ssw : stisni deljene datoteke
  -STL : nastavi časovni žig arhiva iz zadnje spremenjene datoteke
  -stm{HexMask} : nastavi CPU thread affinity mask (šestnajstiško število)
  -stx{Type} : izključi arhivski tip
  -t{Type} : Tip arhiva
  -u[-][p#][q#][r#][x#][y#][z#][!newArchiveName] : Možnosti posodobitve
  -v{Size}[b|k|m|g] : Create volumes
  -w[{path}] : dodeli Delovni imenik. Prazna pot pomeni začasni imenik
  -x[r[-|0]]{@listfile|! Wildcard} : eXclude imena datotek
  -y : predpostavi Da na vse poizvedbe
Stisni mape s 7z

Ukaz je naslednji:


Zaradi dodajanja parametra -sdel se mapa zh samodejno izbriše, ko je stiskanje končano. Preizkusimo stisnjeno datoteko z WinRAR, kot je prikazano spodaj:



Razpakirajte datoteko s 7z

Ukaz je naslednji:


Dekompresija je zaključena, kot je prikazano na spodnji sliki:



.NET/C# kliče dekompresijo 7z preko ukazne vrstice

Kako uporabim .NET/C# kodo za izvajanje ukazne vrstice? Koda je naslednja:

(Konec)




Prejšnji:65 spletnih strani za prenos izvorne kode
Naslednji:[Dejanski boj]. NET/C# določi časovno omejitev za metodo
 Najemodajalec| Objavljeno 30. 4. 2022 ob 17:49:29 |
e Razpakirajte datoteke (vse stisnjene datoteke se dekompresirajo v isti imenik, brez ohranjanja izvirne strukture imenikov)
# Razpakirajte datoteko v trenutno mapo
7z e archive.zip
# Razpakirajte datoteko v mapo e:\testunzip
7z e archive.zip -oe:\testunzip
# Razpakirajte vse PNG datoteke v mapo e:\testunzip
7z e archive.zip -oe:\testunzip *.png -r

x Razpakirajte datoteko (ohranite izvirno strukturo imenikov)
# Razpakirajte datoteko v trenutno mapo
7z x archive.zip
# Razpakirajte datoteko v mapo e:\testunzip
7z x archive.zip -oe:\testunzip
# Razpakirajte vse PNG datoteke v mapo e:\testunzip
7z x archive.zip -oe:\testunzip *.png -r

l Oglejte si seznam vseh datotek v paketu
7z l archive.zip

-ao Kako se obravnavajo datoteke z istim imenom
# -aoa prepiše datoteko z istim imenom
7z x archive.zip -aoa
# -aos Preskoči datoteko z istim imenom
# -aou preimenuje arhiv z istim imenom
# -aot preimenuje datoteke v izvlečeni mapi z enakim imenom

d Izbriši datoteke znotraj paketa
# Izbriši vse datoteke s pripono .bak v archive.zip
7z d archive.zip *.bak -r

rn preimenuje datoteko znotraj paketa
# Preimenuj datoteko 1.png 1_new.png 2.png mapo\2_new.png
7z trenutno archive.7z 1.png 1_new.png 2.png mapa\2_new.png
Objavljeno 30. 4. 2022 ob 20:05:18 |
Nauči se učiti.
Disclaimer:
Vsa programska oprema, programski materiali ali članki, ki jih izdaja Code Farmer Network, so namenjeni zgolj učnim in raziskovalnim namenom; Zgornja vsebina ne sme biti uporabljena v komercialne ali nezakonite namene, sicer uporabniki nosijo vse posledice. Informacije na tej strani prihajajo z interneta, spori glede avtorskih pravic pa nimajo nobene zveze s to stranjo. Zgornjo vsebino morate popolnoma izbrisati z računalnika v 24 urah po prenosu. Če vam je program všeč, podprite pristno programsko opremo, kupite registracijo in pridobite boljše pristne storitve. Če pride do kakršne koli kršitve, nas prosimo kontaktirajte po elektronski pošti.

Mail To:help@itsvse.com