Bonjour
Je ne parviens pas à trouver comment faire une action qui peut paraitre simple, mais étant débutant en Unix et Perl, je viens requérir votre aide.
Je suis en train de faire un programme en perl avec Eclipse sous un environnement Windows qui sera migrer via cvs sur un machine qui elle sera sous un environnement Unix (sinon ce ne serait pas drôle).
Une partie de ce programme consiste à dé-zipper un fichier *.zip protéger par un mot de passe.
J’ai pensé tous d’abord à faire appelle à la commande magique "system" en faisant comme suite :
J’imagine que c’est le fait que j’exécute mon script sous Windows que j’ai le message suivant qui s’affiche :
Code : Sélectionner tout - Visualiser dans une fenêtre à part system "unzip P <password> <fichier a dézipper>";
Du coup j’ai tenté de faire la même chose mais en perl, et j’ai fais ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 'unzip' n'est pas reconnu en tant que commande interne ou externe, un programme exécutable ou un fichier de commandes.
Ce qui fonctionne super bien avec un fichier Zippé non protéger par un mot de passe, mais je ne trouve pas comment faire pour adapter ce code à un fichier protéger.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 #création d'un objet Zip my $zipFile = Archive::Zip->new(); #Lecture du fichier Zip my $status = $zipFile->read(<fichier zip dorigine>); if($status == 0) { my $tree = $zipFile->extractTree('',<destination des fichier dézippé>); }
Je n’ai pas trouvé l’info sur CPAN, mais j’avais peut être pas les yeux en face des trous
Quelqu’un aurait-t-il déjà été confronté à ce cas de figure ?
Merci d’avance
Partager