Bonjour,

je tente de faire un script me permettant de créer un zip de n fichiers d'un répertoire. Ce zip ne contenant que les fichiers et non pas le dossier source.

Voici le code que j'ai fait :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
 
#!C:\Perl64\bin\
 
use strict;
use warnings;
use autodie;
use File::Copy qw/ copy /;
use File::Basename ;
use Archive::Zip 	qw( :ERROR_CODES :CONSTANTS );
 
# Global Variable
my $DIROUT = './FileResult/';
 
# Partie ZIPPAGE du répertoire contenant les ressources sans Exstension
opendir(DIROUT, $DIROUT) or die $!;
my $ZipCreated=qw(./FileZipped/Archive.zip);
 
my $RC = 0;
my $ZipFile = Archive::Zip->new() or $RC=1; 
 
my @ListFilesToZip = glob ($DIROUT);
 
foreach my $File (@ListFilesToZip)
	{
		$ZipFile -> addFile ($File) ;
	}
 
if ($ZipFile->writeToFileNamed($ZipCreated) != AZ_OK )
	{
		$RC=2;
	}
 
	print "Fin de l'ecriture du fichier Archive avec le code [$RC]!\n";
A la suite de l'exécution de ce script, je me retrouve avec cette erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
Can't call method "desiredCompressionLevel" on an undefined value at C:/Perl64/lib/Archive/Zip/Archive.pm line 256.
Cette erreur disparaît lorsque j'écris la ligne "addFile" ainsi :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
$ZipFile -> addFile ("$DIROUT/$File") ;
Sauf que le zip produit contient le dossier "FileResult" en amont des fichiers, ce que je ne veux pas.

Auriez-vous une idée pour me dépatouiller, svp ?