Este artigo é um artigo espelhado de tradução automática, por favor clique aqui para ir para o artigo original.

Vista: 11568|Resposta: 2

[Fonte] [Combate real]. NET/C# chama descompressão 7z via linha de comando

[Copiar link]
Postado em 2022-4-30 17:46:24 | | | |
Requisitos: O projeto precisa descomprimir ou comprimir o pacote comprimido carregado, o que geralmente pode ser feito via WinRAR, mas precisamos usar métodos de programação para implementá-lo, e é impossível descomprimir manualmente o arquivo. Como o WinRAR é cobrável, podemos usar .NET/C# para chamar 7z realizando operações de linha de comando para atender às nossas necessidades.

Revisar:

.net/c# para obter as informações do arquivo no pacote zip
https://www.itsvse.com/thread-4831-1-1.html

Método zip de descompactação em Java
https://www.itsvse.com/thread-7750-1-1.html

C# usa ICSharpCode.SharpZipLib.dll para comprimir e descomprimir arquivos/pastas
https://www.itsvse.com/thread-3726-1-1.html
7-Zip é um arquivador de arquivos com alta taxa de compressão. 7-Zip é open-source e freeware. A maior parte do código é licenciada sob a GNU LGPL. Algumas partes do código são licenciadas sob os Termos BSD 3. Algumas partes do código também têm restrições de licenciamento unRAR.

Endereço de Download:O login do hiperlink está visível., as etapas de download e instalação são omitidas (este artigo está instalado no diretório :D:\360Downloads)

Os parâmetros da linha de comando 7-Zip são os seguintes:


7-Zip 21.07 (x64) : Direitos autorais (c) 1999-2021 Igor Pavlov : 2021-12-26

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

<Commands>
  a : Adicionar arquivos ao arquivo
  b : Referência
  d : Excluir arquivos do arquivo
  e : Extrair arquivos do arquivo (sem usar nomes de diretórios)
  h: Calcular valores de hash para arquivos
  i: Mostrar informações sobre formatos suportados
  l : Lista de conteúdos do arquivo
  Agora: Renomear arquivos no arquivo
  t : Teste a integridade do arquivo
  u : Atualizar arquivos para arquivar
  x : arquivos eXtract com caminhos completos

<Switches>
  -- : Parar interruptores e @listfile análise
  -ai[r[-|0]]{@listfile|! coringa} : Incluir arquivos
  -ax[r[-|0]]{@listfile|! coringa} : arquivos eXclude
  -ao{a|s|t|u} : definir modo de sobrescrever
  -an : desabilitar campo archive_name
  -bb[0-3] : definir nível logarítmico de saída
  -bd : desativar o indicador de progresso
  -bs{o|e|p}{0|1|2} : definir fluxo de saída para a linha de saída/erro/progresso
  -BT: mostrar estatísticas de tempo de execução
  -i[r[-|0]]{@listfile|! coringa} : Incluir nomes de arquivos
  -m{Parâmetros} : conjunto Método de compressão
    -mmt[N] : número definido de threads de CPU
    -mx[N] : ajuste do nível de compressão: -mx1 (mais rápido) ... -mx9 (ultra)
  -o{Directory} : definir o diretório de saída
  -p{Senha} : definir Senha
  -r[-|0] : Subdiretórios de recursão para busca de nomes
  -sa{a|e|s} : definir modo de nome de arquivo
  -scc{UTF-8| VITÓRIA| DOS} : defina o conjunto de caracteres para entrada/saída do console
  -scs{UTF-8| UTF-16LE| UTF-16BE| VITÓRIA| DOS| {id}} : defina o conjunto de caracteres para arquivos de lista
  -scrc[CRC32| CRC64| SHA1| SHA256|*] : definir função hash para comandos x, e, h
  -SDL: Excluir arquivos após compressão
  -seml[.] : enviar arquivo por e-mail
  -sfx[{name}] : Criar arquivo de SFX
  -si[{name}] : ler dados do stdin
  -slp : definir modo Páginas Grandes
  -slt : mostrar informações técnicas para o comando l (Lista)
  -SNH: armazenar links rígidos como links
  -snl : armazenar links simbólicos como links
  -sni: armazenar informações de segurança NT
  -sns[-] : armazenar fluxos alternativos NTFS
  -Então: Escreva dados no Stdout
  -SPD : desativar a correspondência de coringa para nomes de arquivos
  -SPE : elimina a duplicação da pasta raiz para o comando extrato
  -SPF : Usar caminhos de arquivo totalmente qualificados
  -ssc[-] : definir modo de caso sensível
  -sse: pare de criar arquivos se não conseguir abrir algum arquivo de entrada
  -SSP : não altere o Tempo de Último Acesso dos arquivos de origem durante o arquivamento
  -ssw : comprimir arquivos compartilhados
  -stl : definir o carimbo de tempo do arquivo do arquivo mais recentemente modificado
  -stm{HexMask} : definir máscara de afinidade da thread da CPU (número hexadecimal)
  -stx{Type} : exclude type archive
  -t{Type} : Definir o tipo de arquivo
  -u[-][p#][q#][r#][x#][y#][z#][!newArchiveName] : Opções de atualização
  -v{Size}[b|k|m|g]: Criar volumes
  -w[{path}] : atribuir diretório de trabalho. Caminho vazio significa um diretório temporário
  -x[r[-|0]]{@listfile|! coringa} : eXclude nomes de arquivos
  -y : assumir sim em todas as consultas
Comprimir pastas com 7z

O comando é o seguinte:


Devido à adição do parâmetro -sdel, a pasta zh é automaticamente excluída quando a compressão é concluída. Vamos testar o arquivo comprimido usando WinRAR, como mostrado abaixo:



Descompacte o arquivo com 7z

O comando é o seguinte:


A descompressão é concluída conforme mostrado na figura abaixo:



.NET/C# chama a descompressão 7z via linha de comando

Como uso código .NET/C# para executar a linha de comando? O código é o seguinte:

(Fim)




Anterior:65 sites de download de código-fonte
Próximo:[Combate real]. NET/C# define um tempo de tempo para um método
 Senhorio| Postado em 2022-4-30 17:49:29 |
e Descompactar arquivos (todos os arquivos comprimidos são descomprimidos no mesmo diretório, sem manter a estrutura original de diretórios)
# Descompacte o arquivo para o diretório atual
7z e archive.zip
# Descompacte o arquivo no diretório e:\testunzip
7Z e archive.zip -oe:\testunzip
# Descompacte todos os arquivos PNG no diretório e:\testunzip
7z e archive.zip -oe:\testunzip *.png -r

x Descompacte o arquivo (mantenha a estrutura original de diretórios)
# Descompacte o arquivo para o diretório atual
7z x archive.zip
# Descompacte o arquivo no diretório e:\testunzip
7z x archive.zip -oe:\testunzip
# Descompacte todos os arquivos PNG no diretório e:\testunzip
7Z x archive.zip -OE:\testunzip *.png -R

Veja uma lista de todos os arquivos do pacote
7z l archive.zip

-ao Como os arquivos com o mesmo nome são tratados
# -AOA sobrescrive o arquivo de mesmo nome
7z x archive.zip -AOA
# -aos Pule o arquivo de mesmo nome
# -aou renomeia o arquivo com o mesmo nome
# -AOT renomeia arquivos no diretório extraído com o mesmo nome

d Exclua os arquivos dentro do pacote
# Apague todos os arquivos com o sufixo .bak no archive.zip
7z d archive.zip *.bak -r

RN renomeia o arquivo dentro do pacote
# Renomeie o arquivo 1.png 1_new.png 2.png pas 2_new.png ta\
7z agora archive.7z 1.png 1_new.png 2.png pasta\2_new.png
Postado em 2022-4-30 20:05:18 |
Aprenda a aprender.
Disclaimer:
Todo software, material de programação ou artigos publicados pela Code Farmer Network são apenas para fins de aprendizado e pesquisa; O conteúdo acima não deve ser usado para fins comerciais ou ilegais, caso contrário, os usuários terão todas as consequências. As informações deste site vêm da Internet, e disputas de direitos autorais não têm nada a ver com este site. Você deve deletar completamente o conteúdo acima do seu computador em até 24 horas após o download. Se você gosta do programa, por favor, apoie um software genuíno, compre o registro e obtenha serviços genuínos melhores. Se houver qualquer infração, por favor, entre em contato conosco por e-mail.

Mail To:help@itsvse.com