Tento článek je zrcadlovým článkem o strojovém překladu, klikněte zde pro přechod na původní článek.

Pohled: 11568|Odpověď: 2

[Zdroj] [Skutečný boj]. NET/C# volá dekompresi 7z pomocí příkazové řádky

[Kopírovat odkaz]
Zveřejněno 30. 4. 2022 17:46:24 | | | |
Požadavky: Projekt musí dekomprimovat nebo komprimovat nahraný komprimovaný balíček, což lze obecně dosáhnout pomocí WinRAR, ale musíme použít programovací metody k implementaci a není možné soubor ručně dekomprimovat. Protože WinRAR je zplatnitelný, můžeme použít .NET/C# k volání 7z pomocí příkazových operací podle našich potřeb.

Přezkoumání:

.NET/C# pro získání informací o souboru v zip balíčku
https://www.itsvse.com/thread-4831-1-1.html

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

C# používá ICSharpCode.SharpZipLib.dll ke kompresi a dekompresi souborů/složek
https://www.itsvse.com/thread-3726-1-1.html
7-Zip je archivátor souborů s vysokým kompresním poměrem. 7-Zip je open-source a freeware. Většina kódu je licencována pod GNU LGPL. Některé části kódu jsou licencovány podle podmínek BSD 3. Některé části kódu mají také omezení týkající se licencování unRAR.

Adresa ke stažení:Přihlášení k hypertextovému odkazu je viditelné., kroky ke stažení a instalaci jsou vynechány (tento článek je nainstalován v adresáři :D:\360Downloads)

Parametry příkazového řádku 7-Zip jsou následující:


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 : Přidat soubory do archivu
  b : Benchmark
  d : Smazat soubory z archivu
  e : Extrahování souborů z archivu (bez použití názvů adresářů)
  h : Výpočet hash hodnot pro soubory
  i : Zobrazit informace o podporovaných formátech
  l : Seznam obsahu archivu
  rn : Přejmenujte soubory v archivu
  t : Testujte integritu archivu
  u : Aktualizovat soubory pro archiv
  x : eXtract soubory s plnými cestami

<Switches>
  -- : Zastavovací spínače a @listfile parsování
  -ai[r[-|0]]{@listfile|! wildcard} : Zahrnout archivy
  -ax[r[-|0]]{@listfile|! divoká karta} : eXclude archivy
  -ao{a|s|t|u} : nastavit režim Přepisování
  -an : deaktivovat archive_name pole
  -bb[0-3] : nastavte úroveň výstupního logu
  -bd : vypnout indikátor průběhu
  -bs{o|e|p}{0|1|2} : nastavte výstupní proud pro výstup/chybu/průběh řádku
  -BT : Zobrazit statistiky doby provádění
  -I[r[-|0]]{@listfile|! Wildcard} : Zahrnout názvy souborů
  -m{Parameters} : set compression Method
    -mmt[N] : nastavte počet vláken CPU
    -mx[N] : nastavte úroveň komprese: -mx1 (nejrychlejší) ... -mx9 (ultra)
  -o{Directory} : set Output directory
  -p{Password} : set Password
  -r[-|0] : Rekurzivní podadresáře pro vyhledávání jmen
  -sa{a|e|s} : set Archive name mode
  -scc{UTF-8| WIN| DOS} : nastavte charset pro vstup/výstup v konzoli
  -scs{UTF-8| UTF-16LE| UTF-16BE| WIN| DOS| {id}} : set charset for list files
  -scrc[CRC32| CRC64| SHA1| SHA256|*] : nastavte hashovací funkci pro příkazy x, e, h
  -sdel : smazat soubory po kompresi
  -seml[.] : Archiv odesílat e-mailem
  -sfx[{name}] : Vytvořit SFX archiv
  -si[{name}] : Číst data ze stdin
  -slp : nastavte režim Large Pages
  -slt : zobrazit technické informace pro příkaz l (Seznam)
  -SNH : ukládejte tvrdé odkazy jako odkazy
  -SNL : ukládejte symbolické odkazy jako odkazy
  -sni : ukládejte bezpečnostní informace NT
  -sns[-] : ukládejte alternativní proudy NTFS
  -Takže : Zapisujte data do StDout
  -SPD : Vypněte porovnávání divokých znaků pro názvy souborů
  -SPE : Odstraňte duplicitu kořenové složky pro příkaz extract
  -SPF : používejte plně kvalifikované cesty k souborům
  -ssc[-] : nastavte citlivý case mode
  -SSE: Přestaňte vytvářet archiv, pokud se nedá otevřít nějaký vstupní soubor
  -ssp : neměňujte čas posledního přístupu ke zdrojovým souborům během archivace
  -SSW : komprimujte sdílené soubory
  -STL : Nastavte časové razítko archivu z naposledy upraveného souboru
  -stm{HexMask} : nastavte CPU vláknovou afinitu masku (hexadecimální číslo)
  -stx{Type} : vyloučit typ archivu
  -t{Type} : Typ souboru archivu
  -u[-][p#][q#][r#][x#][y#][z#][!newArchiveName] : Možnosti aktualizace
  -v{Size}[b|k|m|g] : Create volumes
  -w[{path}] : přiřadit Pracovní adresář. Prázdná cesta znamená dočasný adresář
  -x[r[-|0]]{@listfile|! divoká karta} : eXclude názvy souborů
  -y : předpokládej Ano na všechny dotazy
Komprimujte složky pomocí 7z

Příkaz je následující:


Díky přidání parametru -sdel je složka zh automaticky smazána po dokončení komprese. Otestujme komprimovaný soubor pomocí WinRAR, jak je vidět níže:



Rozbalte soubor pomocí 7z

Příkaz je následující:


Dekomprese je dokončena, jak je znázorněno na obrázku níže:



.NET/C# volá dekompresi 7z pomocí příkazového řádku

Jak mohu použít kód .NET/C# k vykonání příkazové řádky? Kód je následující:

(Konec)




Předchozí:65 stránek ke stažení zdrojového kódu
Další:[Skutečný boj]. NET/C# nastavuje časový limit pro metodu
 Pronajímatel| Zveřejněno 30. 4. 2022 17:49:29 |
e Rozbalit soubory (všechny komprimované soubory jsou dekomprimovány do stejného adresáře, aniž by byla zachována původní struktura adresářů)
# Rozbalte soubor do aktuálního adresáře
7z e archive.zip
# Rozbalte soubor do adresáře e:\testunzip
7z e archive.zip -oe:\testunzip
# Rozbalte všechny PNG soubory do adresáře e:\testunzip
7z e archive.zip -oe:\testunzip *.png -r

x Rozbalte soubor (zachovejte původní strukturu adresářů)
# Rozbalte soubor do aktuálního adresáře
7z x archive.zip
# Rozbalte soubor do adresáře e:\testunzip
7z x archive.zip -oe:\testunzip
# Rozbalte všechny PNG soubory do adresáře e:\testunzip
7z x archive.zip -oe:\testunzip *.png -r

Zobrazit seznam všech souborů v balíčku
7z l archive.zip

-ao Jak se zpracovávají soubory se stejným názvem
# -aoa přepíše soubor se stejným názvem
7z x archive.zip -aoa
# -aos Přeskočte soubor se stejným názvem
# -aou přejmenuje archiv na stejné jméno
# -aot přejmenovává soubory v rozbalené adresáři se stejným názvem

d Smazat soubory uvnitř balíčku
# Smaž všechny soubory s příponou .bak v archive.zip
7z d archive.zip *.bak -r

rn přejmenuje soubor uvnitř balíčku
# Přejmenuj soubor 1.png 1_new.png 2.png složku\2_new.png
7z teď archive.7z 1.png 1_new.png 2.png složka\2_new.png
Zveřejněno 30. 4. 2022 20:05:18 |
Učte se učit.
Zřeknutí se:
Veškerý software, programovací materiály nebo články publikované organizací Code Farmer Network slouží pouze k učení a výzkumu; Výše uvedený obsah nesmí být používán pro komerční ani nelegální účely, jinak nesou všechny důsledky uživatelé. Informace na tomto webu pocházejí z internetu a spory o autorská práva s tímto webem nesouvisí. Musíte výše uvedený obsah ze svého počítače zcela smazat do 24 hodin od stažení. Pokud se vám program líbí, podporujte prosím originální software, kupte si registraci a získejte lepší skutečné služby. Pokud dojde k jakémukoli porušení, kontaktujte nás prosím e-mailem.

Mail To:help@itsvse.com