Este artículo es un artículo espejo de traducción automática, por favor haga clic aquí para saltar al artículo original.

Vista: 11568|Respuesta: 2

[Fuente] [Combate real]. NET/C# llama a la descompresión 7z a través de la línea de comandos

[Copiar enlace]
Publicado el 30-4-2022 17:46:24 | | | |
Requisitos: El proyecto necesita descomprimir o comprimir el paquete comprimido subido, lo que generalmente se puede lograr mediante WinRAR, pero necesitamos usar métodos de programación para implementarlo, y es imposible descomprimir manualmente el archivo. Dado que WinRAR es cobrable, podemos usar .NET/C# para llamar a 7z realizando operaciones de línea de comandos para satisfacer nuestras necesidades.

Revisión:

.net/c# para obtener la información del archivo en el paquete zip
https://www.itsvse.com/thread-4831-1-1.html

Método de encapsulación en Java para descomprimir zip
https://www.itsvse.com/thread-7750-1-1.html

C# utiliza ICSharpCode.SharpZipLib.dll para comprimir y descomprimir archivos/carpetas
https://www.itsvse.com/thread-3726-1-1.html
7-Zip es un archivador de archivos con una alta relación de compresión. 7-Zip es de código abierto y freeware. La mayor parte del código está licenciada bajo la GNU LGPL. Algunas partes del código están licenciadas bajo los Términos BSD 3. Algunas partes del código también tienen restricciones de licencias unRAR.

Dirección de descarga:El inicio de sesión del hipervínculo es visible., se omiten los pasos de descarga e instalación (este artículo está instalado en el directorio :D:\360Downloads)

Los parámetros de la línea de comandos 7-Zip son los siguientes:


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 : Añadir archivos al archivo
  b : Referencia
  d : Eliminar archivos del archivo
  e: Extraer archivos del archivo (sin usar nombres de directorios)
  h: Calcular los valores hash de los archivos
  i: Mostrar información sobre los formatos soportados
  l : Índice del archivo
  ahora mismo: Renombrar archivos en el archivo
  t: Prueba la integridad del archivo
  u : Actualizar archivos a archive
  x : archivos eXtract con rutas completas

<Switches>
  -- : Parar interruptores y @listfile análisis
  -ai[r[-|0]]{@listfile|! comodín} : Incluir archivos
  -ax[r[-|0]]{@listfile|! comodín} : eXclude archives
  -ao{a|s|t|u} : establecer modo de sobrescribir
  -an: desactivar el campo archive_name
  -bb[0-3] : establecer nivel logarítmico de salida
  -BD: desactivar el indicador de progreso
  -bs{o|e|p}{0|1|2} : establecer flujo de salida para la línea de salida/error/progreso
  -BT : mostrar estadísticas de tiempo de ejecución
  -i[r[-|0]]{@listfile|! comodín} : Incluir nombres de archivo
  -m{Parámetros} : establecer método de compresión
    -mmt[N] : número establecido de hilos de CPU
    -mx[N] : ajuste nivel de compresión: -mx1 (más rápido) ... -mx9 (ultra)
  -o{Directory} : set Directorio de salida
  -p{Contraseña} : establecer Contraseña
  -r[-|0] : Subdirectorios de recursiones para la búsqueda de nombres
  -sa{a|e|s} : establecer modo de nombre de archivo
  -scc{UTF-8| GANAR| DOS} : establecer el conjunto de caracteres para entrada/salida de consola
  -scs{UTF-8| UTF-16LE| UTF-16BE| GANAR| DOS| {id}} : set de caracteres para archivos de lista
  -scrc[CRC32| CRC64| SHA1| SHA256|*] : establecer función hash para los comandos x, e, h
  -sdel : eliminar archivos tras la compresión
  -seml[.] : enviar archivo por correo electrónico
  -sfx[{name}] : Crear archivo de SFX
  -si[{name}] : leído datos de stdin
  -slp : establecer modo de Páginas Grandes
  -slt : mostrar información técnica para el comando l (Lista)
  -SNH: almacenar enlaces físicos como enlaces
  -SNL: almacenar enlaces simbólicos como enlaces
  -sni: almacenar información de seguridad NT
  -sns[-] : almacenar flujos alternativos NTFS
  -ASÍ : escribe datos en STDOUT
  -SPD: desactivar la coincidencia de comodines para los nombres de archivo
  -SPE : eliminar la duplicación de la carpeta raíz para el comando extract
  -SPF: Utilizar rutas de archivo totalmente calificadas
  -ssc[-] : Configurar modo sensible de mayúsculas
  -SSE: Dejar de crear archivos si no puede abrir algún archivo de entrada
  -SSP : no cambiar el Tiempo de Último Acceso de los archivos fuente durante el archivo
  -SSW : comprimir archivos compartidos
  -stl : establecer la marca de tiempo del archivo del archivo modificado más recientemente
  -stm{HexMask} : establecer máscara de afinidad del hilo de CPU (número hexadecimal)
  -stx{Tipo} : excluir tipo archivo
  -t{Type} : Establecer tipo de archivo
  -u[-][p#][q#][r#][x#][y#][z#][!newArchiveName] : Opciones de actualización
  -v{Size}[b|k|m|g] : Crear volúmenes
  -w[{path}] : asignar directorio de trabajo. Ruta vacía significa un directorio temporal
  -x[r[-|0]]{@listfile|! comodín} : eXclude nombres de archivos
  -y : asumir Sí en todas las consultas
Comprime carpetas con 7z

El comando es el siguiente:


Debido a la adición del parámetro -sdel, la carpeta zh se elimina automáticamente cuando la compresión termina. Probemos el archivo comprimido usando WinRAR, como se muestra a continuación:



Descomprime el archivo con 7z

El comando es el siguiente:


La descompresión se completa como se muestra en la figura siguiente:



.NET/C# llama a la descompresión 7z a través de la línea de comandos

¿Cómo uso código .NET/C# para ejecutar la línea de comandos? El código es el siguiente:

(Fin)




Anterior:65 sitios de descarga de código fuente
Próximo:[Combate real]. NET/C# establece un tiempo de espera para un método
 Propietario| Publicado el 30-4-2022 17:49:29 |
e Descomprimir archivos (todos los archivos comprimidos se descomprimen en el mismo directorio, sin mantener la estructura original de directorios)
# Descomprime el archivo al directorio actual
7z e archive.zip
# Descomprime el archivo en el directorio e:\testunzip
7Z e archive.zip -oe:\testunzip
# Descomprime todos los archivos PNG en el directorio e:\testunzip
7z e archive.zip -oe:\testunzip *.png -r

x Descomprimir el archivo (mantener la estructura original de directorios)
# Descomprime el archivo al directorio actual
7z x archive.zip
# Descomprime el archivo en el directorio e:\testunzip
7z x archive.zip -oe:\testunzip
# Descomprime todos los archivos PNG en el directorio e:\testunzip
7z x archive.zip -oe:\testunzip *.png -r

Ver una lista de todos los archivos del paquete
7z l archive.zip

-ao Cómo se gestionan los archivos con el mismo nombre
# -AOA sobrescribe el archivo del mismo nombre
7z x archive.zip -AOA
# -aos Salta el archivo del mismo nombre
# -aou renombra el archivo con el mismo nombre
# -AOT renombra los archivos del directorio extraído con el mismo nombre

d Elimina los archivos dentro del paquete
# Borrar todos los archivos con el sufijo .bak en el archive.zip
7z d archive.zip *.bak -r

RN renombra el archivo dentro del paquete
# Renombra el archivo 1.png 1_new.png 2.png carpeta\2_new.png
7z ahora mismo archive.7z 1.png 1_new.png 2.png carpeta\2_new.png
Publicado el 30-4-2022 20:05:18 |
Aprende a aprender.
Renuncia:
Todo el software, materiales de programación o artículos publicados por Code Farmer Network son únicamente para fines de aprendizaje e investigación; El contenido anterior no se utilizará con fines comerciales o ilegales; de lo contrario, los usuarios asumirán todas las consecuencias. La información de este sitio proviene de Internet, y las disputas de derechos de autor no tienen nada que ver con este sitio. Debes eliminar completamente el contenido anterior de tu ordenador en un plazo de 24 horas desde la descarga. Si te gusta el programa, por favor apoya el software genuino, compra el registro y obtén mejores servicios genuinos. Si hay alguna infracción, por favor contáctanos por correo electrónico.

Mail To:help@itsvse.com