Cet article est un article miroir de traduction automatique, veuillez cliquer ici pour accéder à l’article original.

Vue: 11568|Répondre: 2

[Source] [Combat réel]. NET/C# appelle la décompression 7z via la ligne de commande

[Copié le lien]
Publié le 30-04-2022 à 17:46:24 | | | |
Exigences : Le projet doit décompresser ou compresser le package compressé téléchargé, ce qui peut généralement être réalisé via WinRAR, mais nous devons utiliser des méthodes de programmation pour l’implémenter, et il est impossible de décompresser manuellement le fichier. Puisque WinRAR est facturable, nous pouvons utiliser .NET/C# pour appeler 7z en effectuant des opérations en ligne de commande pour répondre à nos besoins.

Révision:

.net/c# pour obtenir les informations du fichier dans le package zip
https://www.itsvse.com/thread-4831-1-1.html

Méthode de décompression zip par encapsulation Java
https://www.itsvse.com/thread-7750-1-1.html

C# utilise ICSharpCode.SharpZipLib.dll pour compresser et décompresser des fichiers/dossiers
https://www.itsvse.com/thread-3726-1-1.html
7-Zip est un archiveur de fichiers avec un taux de compression élevé. 7-Zip est open source et freeware. La plupart du code est sous licence GNU LGPL. Certaines parties du code sont sous licence sous les termes BSD 3. Certaines parties du code comportent également des restrictions de licence unRAR.

Adresse de téléchargement :La connexion hyperlientérée est visible., les étapes de téléchargement et d’installation sont omises (cet article est installé dans le répertoire :D :\360Downloads)

Les paramètres de la ligne de commande 7-Zip sont les suivants :


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 : Ajouter des fichiers à l’archive
  b : Référence
  d : Supprimer les fichiers de l’archive
  e : Extraire des fichiers de l’archive (sans utiliser de noms de répertoires)
  h : Calculer les valeurs de hachage des fichiers
  i : Afficher les informations sur les formats pris en charge
  l : Liste des contenus des archives
  En ce moment : Renommer les fichiers dans les archives
  t : Tester l’intégrité de l’archive
  u : Mettre à jour les fichiers vers l’archive
  x : fichiers eXtract avec chemins complets

<Switches>
  -- : Arrêtez les interrupteurs et @listfile analyse syntapeute
  -ai[r[-|0]]{@listfile| ! joker} : Inclure les archives
  -ax[r[-|0]]{@listfile| ! joker} : eXclude archives
  -ao{a|s|t|u} : définir le mode d’écraser
  -an : désactiver le champ archive_name
  -bb[0-3] : définir le niveau logarithmique de sortie
  -BD : désactiver l’indicateur de progression
  -bs{o|e|p}{0|1|2} : définir le flux de sortie pour la ligne de sortie/erreur/progression
  -BT : afficher les statistiques du temps d’exécution
  -i[r[-|0]]{@listfile| ! joker} : Inclure les noms de fichiers
  -m{Paramètres} : définir la méthode de compression
    -mmt[N] : nombre défini de threads CPU
    -mx[N] : réglez le niveau de compression : -mx1 (le plus rapide) ... -mx9 (ultra)
  -o{Directory} : set Output directory
  -p{Password} : définir Password
  -r[-|0] : Sous-annuaires de récursion pour la recherche de noms
  -sa{a|e|s} : définir le mode Nom d’archive
  -scc{UTF-8| GAGNER| DOS} : définissez le jeu de caractères pour l’entrée/sortie console
  -scs{UTF-8| UTF-16LE| UTF-16BE| GAGNER| DOS| {id}} : définir le jeu de caractères pour les fichiers de liste
  -scrc[CRC32| CRC64| SHA1| SHA256|*] : définir la fonction de hachage pour les commandes x, e, h
  -sdel : supprimer les fichiers après compression
  -seml[.] : envoyer l’archive par email
  -sfx[{name}] : Créer une archive SFX
  -si[{name}] : lecture des données de stdin
  -slp : définir le mode Pages Grandes
  -slt : afficher les informations techniques pour la commande l (Liste)
  -SNH : Stocker des liens physiques sous forme de liens
  -SNL : Stocker des liens symboliques sous forme de liens
  -SNI : Stocker les informations de sécurité NT
  -sns[-] : stocker des flux alternatifs NTFS
  -So : écrire les données dans STDOUT
  -SPD : désactive la correspondance des jokers pour les noms de fichiers
  -SPE : Éliminer la duplication du dossier racine pour la commande Extract
  -SPF : utiliser des chemins de fichiers entièrement qualifiés
  -SSC[-] : Définir le mode de casse sensible
  -sse : arrêtez la création d’archives si elle ne peut pas ouvrir un fichier d’entrée
  -SSP : ne pas modifier l’heure de dernier accès des fichiers sources lors de l’archivage
  -SSW : compresser les fichiers partagés
  -stl : définir l’horodatage de l’archive à partir du fichier le plus récemment modifié
  -stm{HexMask} : définir le masque d’affinité du thread CPU (nombre hexadécimal)
  -stx{Type} : exclure type d’archive
  -t{Type} : Définir le type d’archive
  -u[-][p#][q#][r#][x#][y#][z#][ !newArchiveName] : Options de mise à jour
  -v{Size}[b|k|m|g] : Créer des volumes
  -w[{path}] : assigner le répertoire de travail. Chemin vide signifie un répertoire temporaire
  -x[r[-|0]]{@listfile| ! joker} : eXclude noms de fichiers
  -y : supposer Oui à toutes les requêtes
Comprimer les dossiers avec 7z

La commande est la suivante :


En raison de l’ajout du paramètre -sdel, le dossier zh est automatiquement supprimé lorsque la compression est terminée. Testons le fichier compressé avec WinRAR, comme montré ci-dessous :



Décompressez le fichier avec 7z

La commande est la suivante :


La décompression est réalisée comme montré dans la figure ci-dessous :



.NET/C# appelle la décompression 7z via la ligne de commande

Comment puis-je utiliser du code .NET/C# pour exécuter la ligne de commande ? Le code est le suivant :

(Fin)




Précédent:65 sites de téléchargement de code source
Prochain:[Combat réel]. NET/C# fixe un temps d’attente pour une méthode
 Propriétaire| Publié le 30-04-2022 à 17:49:29 |
e Décompresser les fichiers (tous les fichiers compressés sont décompressés dans le même répertoire, sans conserver la structure originale des répertoires)
# Décompresser le fichier dans le répertoire actuel
7z e archive.zip
# Décompressez le fichier dans le dossier e :\testunzip
7z e archive.zip -oe :\testunzip
# Décompresser tous les fichiers PNG dans le répertoire e :\testunzip
7z e archive.zip -oe :\testunzip *.png -r

x Décompresser le fichier (conserver la structure des répertoires d’origine)
# Décompresser le fichier dans le répertoire actuel
7z x archive.zip
# Décompressez le fichier dans le dossier e :\testunzip
7z x archive.zip -OE :\testunzip
# Décompresser tous les fichiers PNG dans le répertoire e :\testunzip
7z x archive.zip -oe :\testunzip *.png -r

Voir la liste de tous les fichiers du paquet
7z l archive.zip

-ao Comment les dossiers portant le même nom sont gérés
# -AOA écrase le fichier du même nom
7z x archive.zip -AOA
# -aos Ignorez le dossier du même nom
# -Aou renomme l’archive du même nom
# -AOT renomme les fichiers du répertoire extrait portant le même nom

d Supprime les fichiers à l’intérieur du package
# Supprime tous les fichiers avec le suffixe .bak dans le archive.zip
7z d archive.zip *.bak -r

En renomme le fichier à l’intérieur du paquet
# Renomme le fichier 1.png 1_new.png 2.png dos 2_new.png sier\
7z archive.7z 1.png 1_new.png 2.png carpet 2_new.png
Publié le 30-04-2022 à 20:05:18 |
Apprends à apprendre.
Démenti:
Tous les logiciels, supports de programmation ou articles publiés par Code Farmer Network sont uniquement destinés à l’apprentissage et à la recherche ; Le contenu ci-dessus ne doit pas être utilisé à des fins commerciales ou illégales, sinon les utilisateurs assumeront toutes les conséquences. Les informations sur ce site proviennent d’Internet, et les litiges de droits d’auteur n’ont rien à voir avec ce site. Vous devez supprimer complètement le contenu ci-dessus de votre ordinateur dans les 24 heures suivant le téléchargement. Si vous aimez le programme, merci de soutenir un logiciel authentique, d’acheter l’immatriculation et d’obtenir de meilleurs services authentiques. En cas d’infraction, veuillez nous contacter par e-mail.

Mail To:help@itsvse.com