Tento článok je zrkadlovým článkom o strojovom preklade, kliknite sem pre prechod na pôvodný článok.

Pohľad: 11568|Odpoveď: 2

[Zdroj] [Skutočný boj]. NET/C# volá dekompresiu 7z cez príkazový riadok

[Kopírovať odkaz]
Zverejnené 30. 4. 2022 o 17:46:24 | | | |
Požiadavky: Projekt musí dekomprimovať alebo komprimovať nahraný komprimovaný balík, čo sa zvyčajne dá dosiahnuť cez WinRAR, ale na implementáciu je potrebné použiť programovacie metódy a nie je možné súbor manuálne dekomprimovať. Keďže WinRAR je nabíjateľný, môžeme použiť .NET/C# na volanie 7z vykonávaním príkazových operácií na splnenie našich potrieb.

Revízia:

.net/c# na získanie informácií o súbore v balíku zip
https://www.itsvse.com/thread-4831-1-1.html

Java metóda zip unzip enkapsulácie
https://www.itsvse.com/thread-7750-1-1.html

C# používa ICSharpCode.SharpZipLib.dll na kompresiu a dekompresiu súborov/priečinkov
https://www.itsvse.com/thread-3726-1-1.html
7-Zip je archivátor súborov s vysokým kompresným pomerom. 7-Zip je open-source a freeware. Väčšina kódu je licencovaná pod GNU LGPL. Niektoré časti kódu sú licencované podľa podmienok BSD 3. Niektoré časti kódu majú tiež obmedzenia unRAR licencovania.

Adresa na stiahnutie:Prihlásenie na hypertextový odkaz je viditeľné., kroky sťahovania a inštalácie sú vynechané (tento článok je nainštalovaný v adresári :D:\360Downloads)

Parametre príkazového riadku 7-Zip sú nasledovné:


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

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

<Commands>
  a : Pridať súbory do archívu
  b : Benchmark
  d : Vymazať súbory z archívu
  e : Extrahovanie súborov z archívu (bez použitia názvov adresárov)
  h : Vypočítajte hash hodnoty pre súbory
  i : Zobraziť informácie o podporovaných formátoch
  l : Zoznam obsahu archívu
  rn : Premenovanie súborov v archíve
  t : Testovacia integrita archívu
  u : Aktualizujte súbory do archívu
  x : eXtract súbory s úplnými cestami

<Switches>
  -- : Zastavovacie spínače a @listfile parsovanie
  -ai[r[-|0]]{@listfile|! Wildcard} : Zahrnúť archívy
  -ax[r[-|0]]{@listfile|! wildcard} : eXclude archívy
  -ao{a|s|t|u} : nastaviť režim Prepísania
  -an : deaktivovať archive_name pole
  -bb[0-3] : nastavte úroveň výstupného logu
  -bd : vypnúť indikátor pokroku
  -bs{o|e|p}{0|1|2} : nastavte výstupný prúd pre výstup/chybu/pokrokový riadok
  -BT : Zobraziť štatistiky času vykonávania
  -i[r[-|0]]{@listfile|! Wildcard} : Zahrnúť názvy súborov
  -m{Parameters} : nastaviť metódu kompresie
    -mmt[N] : nastavte počet vlákien CPU
    -mx[N] : nastaviť úroveň kompresie: -mx1 (najrýchlejší) ... -mx9 (ultra)
  -o{Directory} : set Output directory
  -p{Password} : set Password
  -r[-|0] : Rekurzívne podadresáre na vyhľadávanie mien
  -sa{a|e|s} : nastaviť režim názvu archívu
  -scc{UTF-8| WIN| DOS} : nastaviť charset pre pre vstup/výstup v konzole
  -scs{UTF-8| UTF-16LE| UTF-16BE| WIN| DOS| {id}} : set charset for list files
  -scrc[CRC32| CRC64| SHA1| SHA256|*] : nastaviť hashovaciu funkciu pre príkazy x, e, h
  -sdel : vymazať súbory po kompresii
  -seml[.] : Archív posielať e-mailom
  -sfx[{name}] : Vytvoriť SFX archív
  -si[{name}] : čítaj dáta zo stdin
  -slp : nastavte režim Large Pages
  -slt : zobraziť technické informácie pre príkaz l (List)
  -snh : ukladajte tvrdé odkazy ako odkazy
  -SNL : ukladať symbolické odkazy ako odkazy
  -sni : ukladať bezpečnostné informácie NT
  -sns[-] : ukladajte alternatívne prúdy NTFS
  -Takže : Zapisujte dáta do STDOUT
  -SPD : Vypnite porovnávanie divokých znakov pre názvy súborov
  -SPE : Odstráňte duplikáciu koreňového priečinka pre príkaz extract
  -SPF : používajte plne kvalifikované cesty k súborom
  -ssc[-] : nastavte citlivý režim prípadov
  -SSE: prestaňte vytvárať archív, ak sa nedá otvoriť nejaký vstupný súbor
  -ssp : počas archivácie nemeňte čas posledného prístupu k zdrojovým súborom
  -SSW : komprimovať zdieľané súbory
  -STL : Nastavte časovú pečiatku archívu z najnovšie upraveného súboru
  -stm{HexMask} : nastaviť masku afinity CPU vlákna (hexadecimálne číslo)
  -stx{Type} : vylúčiť typ archívu
  -t{Type} : Typ súboru archívu
  -u[-][p#][q#][r#][x#][y#][z#][!newArchiveName] : Možnosti aktualizácie
  -v{Size}[b|k|m|g] : Create volumes
  -w[{path}] : priradiť Pracovný adresár. Prázdna cesta znamená dočasný adresár
  -x[r[-|0]]{@listfile|! wildcard} : eXclude názvy súborov
  -y : predpokladaj Áno na všetky dotazy
Komprimujte priečinky pomocou 7z

Príkaz je nasledovný:


Vďaka pridaniu parametra -sdel sa priečinok zh automaticky vymaže po dokončení kompresie. Otestujme komprimovaný súbor pomocou WinRAR, ako je znázornené nižšie:



Rozbalte súbor pomocou 7z

Príkaz je nasledovný:


Dekompresia je dokončená tak, ako je znázornené na obrázku nižšie:



.NET/C# volá dekompresiu 7z cez príkazový riadok

Ako mám použiť .NET/C# kód na vykonanie príkazového riadku? Kód je nasledovný:

(Koniec)




Predchádzajúci:65 stránok na sťahovanie zdrojového kódu
Budúci:[Skutočný boj]. NET/C# nastavuje časový limit pre metódu
 Prenajímateľ| Zverejnené 30. 4. 2022 o 17:49:29 |
e Rozbaliť súbory (všetky komprimované súbory sa dekomprimujú do toho istého adresára bez zachovania pôvodnej štruktúry adresára)
# Rozbalte súbor do aktuálneho adresára
7z e archive.zip
# Rozbalte súbor do adresára e:\testunzip
7z e archive.zip -oe:\testunzip
# Rozbalte všetky PNG súbory do adresára e:\testunzip
7z e archive.zip -oe:\testunzip *.png -r

x Rozbaliť súbor (zachovať pôvodnú štruktúru adresárov)
# Rozbalte súbor do aktuálneho adresára
7z x archive.zip
# Rozbalte súbor do adresára e:\testunzip
7z x archive.zip -oe:\testunzip
# Rozbalte všetky PNG súbory do adresára e:\testunzip
7z x archive.zip -oe:\testunzip *.png -r

l Zobraziť zoznam všetkých súborov v balíku
7z l archive.zip

-ao Ako sa spracovávajú súbory s rovnakým názvom
# -aoa prepíše súbor s rovnakým názvom
7z x archive.zip -aoa
# -aos Preskočiť súbor s rovnakým názvom
# -aou premenováva archív na rovnaký názov
# -aot premenováva súbory v extrahovanom adresári s rovnakým názvom

d Vymažte súbory vo vnútri balíka
# Vymažte všetky súbory s príponou .bak v archive.zip
7z d archive.zip *.bak -r

rn preimenuje súbor vo vnútri balíka
# Premenuj súbor 1.png 1_new.png 2.png priečinok\2_new.png
7z momentálne archive.7z 1.png 1_new.png 2.png priečinku\2_new.png
Zverejnené 30. 4. 2022 20:05:18 |
Naučte sa učiť.
Vyhlásenie:
Všetok softvér, programovacie materiály alebo články publikované spoločnosťou Code Farmer Network slúžia len na vzdelávacie a výskumné účely; Vyššie uvedený obsah nesmie byť použitý na komerčné alebo nezákonné účely, inak nesú všetky následky používateľmi. Informácie na tejto stránke pochádzajú z internetu a spory o autorské práva s touto stránkou nesúvisia. Musíte úplne vymazať vyššie uvedený obsah zo svojho počítača do 24 hodín od stiahnutia. Ak sa vám program páči, podporte originálny softvér, zakúpte si registráciu a získajte lepšie originálne služby. Ak dôjde k akémukoľvek porušeniu, kontaktujte nás prosím e-mailom.

Mail To:help@itsvse.com