[UDF] 7-Zip avec Dll x32 et x64

Partagez des fonctions et des UDF AutoIt.
Règles du forum
.
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11773
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

[UDF] 7-Zip avec Dll x32 et x64

#1

Message par Tlem »

Voici un UDF qui va vous permettre de créer des archives Zip et 7z, ainsi que de faire l'extraction de fichiers d'archives 7z, zip, gzip, bzip2 et tar.

Post original ici.
Merci à rasim pour son magnifique travail.

Fonctions principales :
  • - Support des archives 7z, zip, gzip, bzip2, tar.
    - Cryptage/decryptage des archives.
    - Inclusion/exclusion d'archives.
    - Inclusion/exclusion de fichiers.
    - Module SFX.
    - Archives multivolume.
    - Contrôle de d'archive.
    - Méthode de compression 0-9.
    - 3 méthodes de récursion.
    - Suppression de fichiers dans l'archive.
    - Mise à jour de l'archive.
    - Recherche dans l'archive.
    - Fonction Call-back Dll (pour utiliser 7-zip32.dll avec votre GUI)
    - Récupération la date/heure des fichiers de l'archive.
    - Récupération la taille compressée/décompréssée des fichiers de l'archive.
    - Récupération du ration de compression.
    - Récupération du CRC des fichiers.
    - Récupération du nombre de fichier de l'archive.
    - Lister les fichiers d'une archive
et plus encore ...

Liste des 29 fonctions de l'UDF :
  • _7ZipStartup
    _7ZipShutdown
    _7ZipAdd
    _7ZipDelete
    _7ZIPExtract
    _7ZipExtractEx
    _7ZipUpdate
    _7ZipSetOwnerWindowEx
    _7ZipKillOwnerWindowEx
    _7ZipOpenArchive
    _7ZipCloseArchive
    _7ZipFindFirst
    _7ZipFindNext
    _7ZipGetFileName
    _7ZipGetArcOriginalSize
    _7ZipGetArcCompressedSize
    _7ZipGetArcRatio
    _7ZipGetDate
    _7ZipGetTime
    _7ZipGetCRC
    _7ZipGetAttribute
    _7ZipGetMethod
    _7ZipCheckArchive
    _7ZipGetArchiveType
    _7ZipGetFileCount
    _7ZipConfigDialog
    _7ZipQueryFunctionList
    _7ZipGetVersion
    _7ZipGetSubVersion
    _7ZipGetFilesList
L'UDF, les Dll et quelques exemples ce trouvent dans le fichier joint à ce message. Veuillez prendre note, que les Dll doivent impérativement être placées dans le même dossier que l'UDF ou votre compilation. Vous pouvez modifier le nom et l'emplacement de celles-ci dans la section des variables au début de l'UDF.

Vous trouverez ci-dessous quelques exemples simple d'utilisation de cet UDF :
► Afficher le texte
Edit du 07-10-2012 : Modification significative de l'UDF.

** De part l'ajout des fonctions _7ZipStartup et _7ZipShutdown, vous devrez probablement mettre à jour les anciens codes qui utilisent les fonctions répétitives.


Edit du 14-11-2017 : Modification de deux fonctions de l'UDF.
Suite aux très bonnes remarques de Elementary dans le message #59 :
Mise à jour de la fonction _7ZipStartup() et _7ZipAdd().
Voir explication dans le message #65.

► Afficher le texteMises à jour
.
Fichiers joints
7Zip_UDF.zip
UDF, exemples et DLLs du 14-11-2017
(820.68 Kio) Téléchargé 1650 fois
7Zip_UDF.zip
UDF, exemples et DLLs du 18-10-2012
(820.1 Kio) Téléchargé 5555 fois
7Zip_UDF.zip
Ancienne version - Old version
(284.9 Kio) Téléchargé 1925 fois
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11773
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [UDF] 7-Zip32: support de 7Zip avec Dll (de petite taill

#2

Message par Tlem »

Petite info pour ceux que ça peut intéresser :
Si vous voulez que l'UDF gère la compilation de la DLL dans l’exécutable automatiquement, et place la DLL dans le répertoire temporaire lors de l'utilisation de votre programme, modifiez les premières lignes de l'UDF comme ceci
:
► Afficher le texte
N'oubliez pas évidemment de mettre la DLL dans le même répertoire que l'UDF avant la compilation en exécutable.

De part les modifications du 7-10-2012, ce message est obsolète.
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11773
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [UDF] 7-Zip32: support de 7Zip avec Dll (de petite taille).

#3

Message par Tlem »

Correctif de l'UDF 7Zip.au3.
Voir lien d'origine pour plus d'info.
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
DJSIR
Niveau 8
Niveau 8
Messages : 583
Enregistré le : mar. 01 juil. 2008 15:16
Localisation : 76, Le HAVRE (in the DJSIR World)
Status : Hors ligne

Re: [UDF] 7-Zip32: support de 7Zip avec Dll (de petite taille).

#4

Message par DJSIR »

Je dois avoir du mal à comprendre aujourd'hui mais, quand j'extrais un fichier 7Z, il m'extrait touts les fichiers dans le même dossier et pas dans chaque dossier séparé comme dans l'archive. Comprendo ?

Non, alors je réexplique.
dans mon archive j'ai un dossier A, un B et un C. dans chaque dossier se situe un fichier info.txt et info2.txt.
Quand j'extrais l'archive avec _7ZExtract, tout se retrouve dans le même dossier. A, B et C étant vides !

Comment faire ?
$DJSIR = "1000110001010101011010000101001101001101001010101011010"
(ne décodez pas le binaire, ça veux rien dire)

[Func] ProgressBar, aller plus loin
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11773
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [UDF] 7-Zip32: support de 7Zip avec Dll (de petite taille).

#5

Message par Tlem »

Un petit suppo, un petit dodo et demain lisez un peut mieux les fichiers d'exemple.

J'ai créé une archive 7z multi-dossier avec des fichiers dans chacun de ses dossiers et en utilisant _7ZIPExtractEx_Example.au3 j'ai bien extrait la même arborescence dossiers/fichiers.
Cela veut donc dire que vous n'avez pas utilisé la bonne méthode. Comprendo ? :P
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
coke
Niveau 2
Niveau 2
Messages : 17
Enregistré le : mer. 04 févr. 2009 15:36
Status : Hors ligne

Re: [UDF] 7-Zip32: support de 7Zip avec Dll (de petite taille).

#6

Message par coke »

Bonjour,

J'essaye de faire un ZipUpdate en gardant l'arborescense mais sa ne fonctionne pas

Code : Tout sélectionner

 _7ZipUpdate("", $sArcName, $array[$i])
_7ZIPExtractEx("", $sArcName, @ScriptDir & "\test2")
 
dans le repertoire test2 je n'ai pas l'arborescense complete des fichiers ZIPPER
je ne comprend pas pourquoi

Merci d'avance
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11773
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [UDF] 7-Zip32: support de 7Zip avec Dll (de petite taille).

#7

Message par Tlem »

Peut être qu'il vous maque un paramètre dans les fonctions. :roll:

Lisez le fichier 7Zip.au3 pour voir comment utiliser l'option de récursion. 8)
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
ricky
Niveau 7
Niveau 7
Messages : 443
Enregistré le : ven. 06 févr. 2009 09:25
Localisation : Suisse
Status : Hors ligne

Re: [UDF] 7-Zip32: support de 7Zip avec Dll (de petite taill

#8

Message par ricky »

Hello,

avec cette fonction : _7ZipOpenArchive

comment on peut faire pour avoir le handle d'un fichier zip qui a été splité en plusieurs?
Si je mets le nom du premier, j'ai bien les infos pour la première partie (le handle et le CRC), mais pas pour toute l'archive.

Merci d'avance pour votre aide.
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11773
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [UDF] 7-Zip32: support de 7Zip avec Dll (de petite taill

#9

Message par Tlem »

Je n'ai pas la réponse, mais peut être que sur le lien d'origine ... :wink:
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11773
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [UDF] 7-Zip32: support de 7Zip avec Dll (de petite taill

#10

Message par Tlem »

Bonjour à tous. Suite à un sujet du forum, j'ai créé la fonction _7ZipGetFilesList ci-dessous, qui permet d'avoir la liste complète des fichiers et dossiers d'une archive Zip ou 7z.

Cette fonction est dépendante de l'UDF 7zip.au3 ainsi que de 3 autres fonctions crées pour les besoins.

Petit conseil : Intégrez ces fonctions à l'UDF 7zip.au3, cela vous facilitera la vie. ^^

Note : Sur mon PC portable DualCore Centrino T5500 1,66Ghz, la liste d'une archive Zip de 250Mo contenant 9000 fichiers/Dossiers à été effectuée en 6 secondes. 8)

Le code :
► Afficher le texte_7ZipGetFilesList + dépendances
Et voici un exemple d'utilisation :

Code : Tout sélectionner

#include '7Zip.au3'
#include <Array.au3>

$aFlist = _7ZipGetFilesList(0, 'Archive.zip')
_ArrayDisplay($aFlist)
Bon code à tous.

Edit du 07-10-2012 : Modification de la fonction afin de corriger deux bugs sur la taille des fichiers et des répertoires.
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Chokolaa
Niveau 4
Niveau 4
Messages : 55
Enregistré le : ven. 04 nov. 2011 13:12
Status : Hors ligne

Re: [UDF] 7-Zip32: support de 7Zip avec Dll (de petite taill

#11

Message par Chokolaa »

Salut,

Serait t'il possible de faire un support des archives jar svp?
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11773
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [UDF] 7-Zip32: support de 7Zip avec Dll (de petite taill

#12

Message par Tlem »

:shock:
c'est une boutade ???

http://fr.wikipedia.org/wiki/JAR_(format_de_fichier)
Extrait :
Les fichiers JAR sont créés et extraits à l'aide de la commande jar incluse dans le JDK. On peut cependant renommer les fichiers .jar avec l'extension.zip et les manipuler avec les outils ZIP. La classe Java JarFile du package java.util.jar hérite de ZipFile.
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [UDF] 7-Zip32: support de 7Zip avec Dll (de petite taill

#13

Message par mikell »

ZDS a écrit :Roh la vache, comment passer pour un con en 2 secondes
:mrgreen:
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Chokolaa
Niveau 4
Niveau 4
Messages : 55
Enregistré le : ven. 04 nov. 2011 13:12
Status : Hors ligne

Re: [UDF] 7-Zip32: support de 7Zip avec Dll (de petite taill

#14

Message par Chokolaa »

J'ai fait un programme qui utilise cet UDF il y a un mois, il marchais bien, mais aujourd'hui, je reprend mon projet et quand il lance l'extraction d'un fichier, la fenêtre d'extraction apparaît pendant une demi seconde puis disparaît et l'archive n'est pas extraite.

Pourtant le programme est le même qu'hier et la DLL ce trouve dans le dossier de mon script avec l'UDF 7-zip32. Je ne comprend pas ...
Avatar du membre
silvere
Niveau 8
Niveau 8
Messages : 532
Enregistré le : sam. 24 sept. 2011 22:56
Status : Hors ligne

Re: [UDF] 7-Zip32: support de 7Zip avec Dll (de petite taill

#15

Message par silvere »

Tu peut toujours essayer http://www.autoitscript.fr/forum/viewto ... =21&t=6084 au moins tu n'auras plus de dll
Quand le mensonge prend l'ascenseur, la vérité prend l'escalier. Elle met plus de temps, mais elle fini toujours par arriver.
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11773
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [UDF] 7-Zip32: support de 7Zip avec Dll (de petite taill

#16

Message par Tlem »

@silvere
Pour info, le titre du sujet que vous citez est : 7-Zip32 sans DLL (DLL en mémoire)
Donc finalement il y a toujours l'utilisation de la DLL, mais celle-ci est intégrée au script et directement chargée en mémoire. :mrgreen:

@Chokolaa
Si vous n'avez fait aucun changement particulier depuis la dernière fois, regardez si le fichier de DLL ne serait pas endommagé et/ou si le code ne serait pas tributaire d'un élément qui n'est plus présent depuis la dernière fois. :roll:
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Chokolaa
Niveau 4
Niveau 4
Messages : 55
Enregistré le : ven. 04 nov. 2011 13:12
Status : Hors ligne

Re: [UDF] 7-Zip32: support de 7Zip avec Dll (de petite taill

#17

Message par Chokolaa »

Ah merci, la DLL était endommagé, j'avais pas eu l'idée de la retélécharger ^^
jide
Niveau 1
Niveau 1
Messages : 1
Enregistré le : lun. 07 mai 2012 18:07
Status : Hors ligne

Re: [UDF] 7-Zip32: support de 7Zip avec Dll (de petite taill

#18

Message par jide »

Bonjour et merci pour la partage !

Une petite correction ligne 74 :

Code : Tout sélectionner

If $sPassword Then $iSwitch &= " -p" & $sPassword
devient

Code : Tout sélectionner

If $sPassword Then $iSwitch &= " -p" & $sPassword & ' -mhe'
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11773
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [UDF] 7-Zip32: support de 7Zip avec Dll (de petite taill

#19

Message par Tlem »

Tlem a écrit :@silvere
Pour info, le titre du sujet que vous citez est : 7-Zip32 sans DLL (DLL en mémoire)
Donc finalement il y a toujours l'utilisation de la DLL, mais celle-ci est intégrée au script et directement chargée en mémoire. :mrgreen:

@Chokolaa
Si vous n'avez fait aucun changement particulier depuis la dernière fois, regardez si le fichier de DLL ne serait pas endommagé et/ou si le code ne serait pas tributaire d'un élément qui n'est plus présent depuis la dernière fois. :roll:
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11773
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [UDF] 7-Zip avec Dll x32 et x64

#20

Message par Tlem »

Très grosse mise à jour de l'UDF. Merci de lire les modifications dans le premier message de ce sujet.

Malgré le temps passé à tester l'UDF, il peut subsister quelques erreurs ou problèmes. Merci à ceux qui voudrons bien tester les fonctions le plus intensivement possible. ;)
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Répondre