Questo articolo è un articolo speculare di traduzione automatica, clicca qui per saltare all'articolo originale.

Vista: 11568|Risposta: 2

[Fonte] [Combattimento vero e proprio]. NET/C# chiama la decompressione 7z tramite la riga di comando

[Copiato link]
Pubblicato il 30-04-2022 17:46:24 | | | |
Requisiti: Il progetto deve decomprimere o comprimere il pacchetto compresso caricato, cosa generalmente possibile tramite WinRAR, ma dobbiamo usare metodi di programmazione per implementarlo, ed è impossibile decomprimere manualmente il file. Poiché WinRAR è addebitabile, possiamo usare .NET/C# per chiamare 7z eseguendo operazioni da riga di comando per soddisfare le nostre esigenze.

Recensione:

.net/c# per ottenere le informazioni del file nel pacchetto zip
https://www.itsvse.com/thread-4831-1-1.html

Metodo di incapsulamento Java zip unzip
https://www.itsvse.com/thread-7750-1-1.html

C# usa ICSharpCode.SharpZipLib.dll per comprimere e decomprimere file/cartelle
https://www.itsvse.com/thread-3726-1-1.html
7-Zip è un archiviatore di file con un alto rapporto di compressione. 7-Zip è open-source e freeware. La maggior parte del codice è concessa in licenza sotto GNU LGPL. Alcune parti del codice sono concesse in licenza secondo i Termini BSD 3. Alcune parti del codice prevedono anche restrizioni sulle licenze unRAR.

Indirizzo di download:Il login del link ipertestuale è visibile., i passaggi di download e installazione sono omessiti (questo articolo è installato nella cartella :D:\360Downloads)

I parametri della linea di comando 7-Zip sono i seguenti:


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 : Aggiungi file all'archivio
  b : Benchmark
  d : Elimina file dall'archivio
  e: Estrazione dei file dall'archivio (senza usare nomi di directory)
  h: Calcolare i valori hash dei file
  i : Mostra informazioni sui formati supportati
  l : Elenco dei contenuti dell'archivio
  Ora: Rinomina i file nell'archivio
  t : Verifica l'integrità dell'archivio
  u : Aggiorna i file ad archive
  x : file eXtract con percorsi completi

<Switches>
  -- : Interruttori di stop e @listfile analisi
  -ai[r[-|0]]{@listfile|! jolly} : Include archivi
  -ax[r[-|0]]{@listfile|! wildcard} : archivi eXclude
  -ao{a|s|t|u} : imposta modalità Sovrascrivi
  -an : Disabilita archive_name campo
  -bb[0-3] : imposta il livello logaritmico di uscita
  -bd : disabilita l'indicatore di avanzamento
  -bs{o|e|p}{0|1|2} : imposta il flusso di uscita per la linea di output/errore/progresso
  -BT : Mostra statistiche sui tempi di esecuzione
  -i[r[-|0]]{@listfile|! wildcard} : Include i nomi dei file
  -m{Parametri} : imposta Metodo di compressione
    -mmt[N] : numero impostato di thread CPU
    -mx[N] : imposta il livello di compressione: -mx1 (più veloce) ... -mx9 (ultra)
  -o{Directory} : imposta la cartella Output
  -p{Password} : imposta Password
  -r[-|0] : Sottodirectory ricorsive per la ricerca dei nomi
  -sa{a|e|s} : imposta modalità Nome archivio
  -scc{UTF-8| VITTORIA| DOS} : imposta il carset per per input/output console
  -scs{UTF-8| UTF-16LE| UTF-16BE| VITTORIA| DOS| {id}} : set di caratti per file elenco
  -scrc[CRC32| CRC64| SHA1| SHA256|*] : imposta la funzione hash per i comandi x, e, h
  -SDL: elimina file dopo la compressione
  -seml[.] : invia archivio via email
  -sfx[{name}] : Crea archivio SFX
  -si[{name}] : leggi dati da stdin
  -slp : imposta modalità Pagine Grandi
  -slt : mostra informazioni tecniche per il comando l (Lista)
  -SNH: Memorizzare collegamenti rigidi come link
  -SNL : Memorizzare collegamenti simbolici come link
  -SNI : Memorizza le informazioni di sicurezza NT
  -sns[-] : memorizza flussi alternativi NTFS
  -SO : scrivi dati in stdout
  -SPD : Disabilita il corrispondenza delle carte jolly per i nomi dei file
  -SPE : elimina la duplicazione della cartella radice per il comando estrazione
  -SPF : utilizzare percorsi di file completamente qualificati
  -SSC[-] : imposta modalità di cassa sensibile
  -sse : interrompi la creazione dell'archivio se non riesce ad aprire qualche file di input
  -SSP : non modificare l'Ultimo Tempo di Accesso dei file sorgente durante l'archiviazione
  -ssw : comprimi file condivisi
  -stl : imposta timestamp archive dal file modificato più recentemente
  -stm{HexMask} : imposta la maschera di affinità del thread CPU (numero esadecimale)
  -stx{Type} : esclude type archive
  -t{Type} : Imposta il tipo di archivio
  -u[-][p#][q#][r#][x#][y#][z#][!newArchiveName] : Opzioni di aggiornamento
  -v{Dimensione}[b|k|m|g] : Crea volumi
  -w[{path}] : assegna la cartella di lavoro. Percorso vuoto significa una directory temporanea
  -x[r[-|0]]{@listfile|! wildcard} : eXclude filenames
  -y : assumi Sì su tutte le query
Comprimi le cartelle con 7z

Il comando è il seguente:


A causa dell'aggiunta del parametro -sdel, la cartella zh viene automaticamente eliminata quando la compressione è completata. Testiamo il file compresso usando WinRAR, come mostrato di seguito:



Scomprimi il file con 7z

Il comando è il seguente:


La decompressione viene completata come mostrato nella figura sottostante:



.NET/C# chiama la decompressione 7z tramite la riga di comando

Come posso usare il codice .NET/C# per eseguire la riga di comando? Il codice è il seguente:

(Fine)




Precedente:65 siti di download del codice sorgente
Prossimo:[Combattimento vero e proprio]. NET/C# stabilisce un tempo di timeout per un metodo
 Padrone di casa| Pubblicato il 30-04-2022 17:49:29 |
e Scomprimere i file (tutti i file compressi vengono decompressi nella stessa directory, senza mantenere la struttura originale delle directory)
# Scomprimi il file nella directory corrente
7z e archive.zip
# Scomprimi il file nella directory e:\testunzip
7z e archive.zip -oe:\testunzip
# Scomprimi tutti i file PNG nella directory e:\testunzip
7Z e archive.zip -oe:\testunzip *.png -r

x Scomprimere il file (mantenere la struttura originale della directory)
# Scomprimi il file nella directory corrente
7z x archive.zip
# Scomprimi il file nella directory e:\testunzip
7z x archive.zip -oe:\testunzip
# Scomprimi tutti i file PNG nella directory e:\testunzip
7z x archive.zip -oe:\testunzip *.png -r

L Visualizza l'elenco di tutti i file nel pacchetto
7z l archive.zip

-ao Come vengono gestiti i file con lo stesso nome
# -AOA sovrascrive il file omonimo
7z x archive.zip -AOA
# -aos Salta il file con lo stesso nome
# -Aou rinomina l'archivio con lo stesso nome
# -AOT rinomina i file nella directory estratta con lo stesso nome

d Elimina i file all'interno del pacchetto
# Elimina tutti i file con il suffisso .bak nel archive.zip
7z d archive.zip *.bak -r

RN rinomina il file all'interno del pacchetto
# Rinomina il file 1.png 1_new.png 2.png cartell 2_new.png a\
7Z archive.7z 1.png 1_new.png 2.png cartella al momento 2_new.png\
Pubblicato il 30-04-2022 20:05:18 |
Impara a imparare.
Disconoscimento:
Tutto il software, i materiali di programmazione o gli articoli pubblicati dalla Code Farmer Network sono destinati esclusivamente all'apprendimento e alla ricerca; I contenuti sopra elencati non devono essere utilizzati per scopi commerciali o illegali, altrimenti gli utenti dovranno sostenere tutte le conseguenze. Le informazioni su questo sito provengono da Internet, e le controversie sul copyright non hanno nulla a che fare con questo sito. Devi eliminare completamente i contenuti sopra elencati dal tuo computer entro 24 ore dal download. Se ti piace il programma, ti preghiamo di supportare software autentico, acquistare la registrazione e ottenere servizi autentici migliori. In caso di violazione, vi preghiamo di contattarci via email.

Mail To:help@itsvse.com