PC SOFT

PROFESSIONAL NEWSGROUPS
WINDEVWEBDEV and WINDEV Mobile

Home → WINDEV 2024 → [WD10] - zipCr?eEXE
[WD10] - zipCr?eEXE
Started by Yanick.Charland_nospam_, Mar., 28 2006 8:30 AM - 6 replies
Posted on March, 28 2006 - 8:30 AM
Bonjour,

Je tente de créer une application qui pourra généré des archives de
répertoires avec la possibilité d'en faire des exe auto-extractibles.
Mes archives contiennent une structure de répertoires dans lesquels
sont classés différents documents de tous genres.

J'arrive à créer mon fichier en format ZIP mais lorsque je tente
d'exécuter l'EXE résultant, je bloque sur un point. Impossible d'en
extraire ma structure originale, tous les fichiers sont extraits dans
le répertoire d'extraction.

D'après l'aide sur zipCréeExe :
"Chemin mémorisé des fichiers de l'archive

Lors de l'extraction des fichiers d'une archive auto-extractible, le
chemin mémorisé des fichiers n'est pas conservé. Seuls le nom et
l'extension des fichiers sont conservés."

J'arrive pas à le croire... Quelqu'un aurait-il une idée à me soumettre
pour que j'arrive à faire un fichier EXE qui décompresse tout en
gardant ma structure originale ?

Merci bien !

Yanick Charland

--

-------------------------------------------------
Yanick Charland
Posted on March, 28 2006 - 11:56 AM
J'ai moi meme un gros soucis avec la mémorisation des chemins relatifs ...

En fait en utilisant le code suivant cela devrait créer un ZIp (zip réel) en mémorisaant le chemin relatif ... DossierTemp contient mes fichiers a zipper avec la structure des dossiers...

NomArchiveAGénérer est une chaîne

NomArchiveAGénérer = fSélecteur("", RacineArbre, "Enregistrer le dossier sous...", "Archive (zip)"+TAB+"*.ZIP", "*.ZIP", fselCrée+fselExiste)


SI NomArchiveAGénérer <> "" ALORS
Sablier(Vrai)
zipCrée("DossierGénéré",NomArchiveAGénérer)
zipAjouteRépertoire("DossierGénéré",DossierTemp,Vrai,zipRelatif)
Info("Création du dossier : "+NomArchiveAGénérer+" exécuté !")
zipFerme("DossierGénéré")
Sablier(Faux)
FIN

Hors lorsque j'essaie d'ouvrir l'archive crée sous Winzip, PowerArchver ... elle ne s'ouvre pas ... sous l'eplorateur XP J'ai la structure des doissiers mais rien a l'intérieur par contre sous WDZip cela fonctionne .. Si j'enlève le chemein relatif ca marche !!!

Je pense que nos soucis viennent de ziprelatif ...

est ce que tu arrives a générer déjà juste le Zip avec les chemins relatifs ?
Posted on March, 28 2006 - 6:58 PM
<snip !>
Hors lorsque j'essaie d'ouvrir l'archive crée sous Winzip, PowerArchver ...
elle ne s'ouvre pas ... sous l'eplorateur XP J'ai la structure des doissiers
mais rien a l'intérieur par contre sous WDZip cela fonctionne .. Si j'enlève
le chemein relatif ca marche !!!

Je pense que nos soucis viennent de ziprelatif ...

est ce que tu arrives a générer déjà juste le Zip avec les chemins relatifs ?


Je crée l'archive zip en spécifiant "zipRelatif" et j'arrive à l'ouvrir
correctement en utilisant FilZip ou encore les dossiers compressés de
Windows XP Pro SP2. Cependant, Winzip 10 m'indique que l'archive est
corrompue et WinRAR 3.51 n'arrive pas à afficher son contenu.

Je tiens vraiment à ce que l'arborescence originale soit conservée dans
l'archive et qu'elle soit recréée lorsque le fichier EXE
auto-extractible sera exécuté sur le poste client...

Si quelqu'un trouve quelque chose, je crois que plusieurs seront bien
heureux !

Bonne journée !

Yanick Charland

--

-------------------------------------------------
Yanick Charland
Posted on March, 28 2006 - 7:31 PM
Voici ce que j'ai trouvé dans l'aide en ligne sur zipCréeExe :
"<Répertoire de l'extraction> : Constante optionnelle

zipArborescence

Les fichiers de l'archive seront extraits en respectant l'arborescence
des répertoires contenus dans l'archive."

et un peu plus loin, dans la même page :

"Chemin mémorisé des fichiers de l'archive

Lors de l'extraction des fichiers d'une archive auto-extractible, le
chemin mémorisé des fichiers n'est pas conservé. Seuls le nom et
l'extension des fichiers sont conservés."

Il semble donc que l'utilisation de la constante zipArborescence
permette de créé un exécutable auto-extractible qui recrée la structure
d'origine lorsqu'il est exécuté, contrairement à ce que le paragraphe
des notes indique.

Utilisé avec zipAjouteRépertoire en spécifiant la portion de chemin à
ignorer (voir l'aide sur zipAjouteRépertoire), j'arrive à créer un exe
auto-extractible qui se décompresse correctement en recréant la
structure d'origine.

Bonne journée !

Yanick Charland

--

-------------------------------------------------
Yanick Charland
Posted on March, 28 2006 - 8:28 PM
Quelqu'un aurais t'il rencontré ce problème ?

existe t'il une solution ?
Posted on March, 29 2006 - 2:44 PM
Est ce que tu trouve quelkque chose non conforme dans mon code :

NomArchiveAGénérer est une chaîne

NomArchiveAGénérer = fSélecteur("", RacineArbre, "Enregistrer le dossier sous...", "Archive (zip)"+TAB+"*.ZIP", "*.ZIP", fselCrée+fselExiste)


SI NomArchiveAGénérer <> "" ALORS
Sablier(Vrai)
zipCrée("DossierGénéré",NomArchiveAGénérer)
zipAjouteRépertoire("DossierGénéré",DossierTemp,Vrai,zipRelatif)
Info("Création du dossier : "+NomArchiveAGénérer+" exécuté !")
zipFerme("DossierGénéré")
Sablier(Faux)
FIN

Mon but est de compresser un dossier avec une arborescence en fichier ZIP (vrai ZIP) et de restituer cette arborescence a la décompression ...

merci d'avance pour ton aide
Posted on March, 31 2006 - 12:39 AM
cezame a présenté l'énoncé suivant :
Est ce que tu trouve quelkque chose non conforme dans mon code :

NomArchiveAGénérer est une chaîne

NomArchiveAGénérer = fSélecteur("", RacineArbre, "Enregistrer le dossier
sous...", "Archive (zip)"+TAB+"*.ZIP", "*.ZIP", fselCrée+fselExiste)


SI NomArchiveAGénérer <> "" ALORS
Sablier(Vrai)
zipCrée("DossierGénéré",NomArchiveAGénérer)
zipAjouteRépertoire("DossierGénéré",DossierTemp,Vrai,zipRelatif)
Info("Création du dossier : "+NomArchiveAGénérer+" exécuté !")
zipFerme("DossierGénéré")
Sablier(Faux)
FIN

Mon but est de compresser un dossier avec une arborescence en fichier ZIP
(vrai ZIP) et de restituer cette arborescence a la décompression ...

merci d'avance pour ton aide


Bonjour,

J'ai testé ton code (j'ai remplacé RacineArbre par "" et DossierTemp
par un superchamp "Sélecteur de répertoire") et j'ai bien réussi à
créer un fichier ZIP contenant et les fichiers et l'arborescence
originale. Si je l'extrait avec WinZip, je retrouve bien la structure
comme elle devrait être. Ma version de WinDev : 040k...

As-tu essayé de l'extraire sur d'autres machines ?

Bonne chance !

Yanick Charland

--

-------------------------------------------------
Yanick Charland