Page 1 sur 4

[UDF] 7-Zip avec Dll x32 et x64

Posté : sam. 06 déc. 2008 10:04
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
.

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

Posté : lun. 19 janv. 2009 23:27
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.

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

Posté : mar. 27 janv. 2009 06:56
par Tlem
Correctif de l'UDF 7Zip.au3.
Voir lien d'origine pour plus d'info.

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

Posté : sam. 17 oct. 2009 17:48
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 ?

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

Posté : sam. 17 oct. 2009 21:59
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

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

Posté : mer. 24 mars 2010 18:59
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

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

Posté : mer. 24 mars 2010 22:30
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)

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

Posté : mer. 13 avr. 2011 15:35
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.

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

Posté : mer. 13 avr. 2011 23:09
par Tlem
Je n'ai pas la réponse, mais peut être que sur le lien d'origine ... :wink:

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

Posté : lun. 02 janv. 2012 13:21
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.

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

Posté : mer. 11 janv. 2012 00:26
par Chokolaa
Salut,

Serait t'il possible de faire un support des archives jar svp?

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

Posté : mer. 11 janv. 2012 00:43
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.

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

Posté : mer. 11 janv. 2012 13:49
par mikell
ZDS a écrit :Roh la vache, comment passer pour un con en 2 secondes
:mrgreen:

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

Posté : lun. 20 févr. 2012 02:07
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 ...

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

Posté : lun. 20 févr. 2012 02:11
par silvere
Tu peut toujours essayer http://www.autoitscript.fr/forum/viewto ... =21&t=6084 au moins tu n'auras plus de dll

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

Posté : lun. 20 févr. 2012 02:45
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:

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

Posté : lun. 20 févr. 2012 13:34
par Chokolaa
Ah merci, la DLL était endommagé, j'avais pas eu l'idée de la retélécharger ^^

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

Posté : lun. 07 mai 2012 18:13
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'

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

Posté : dim. 07 oct. 2012 03:51
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:

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

Posté : dim. 07 oct. 2012 20:54
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. ;)