Anonymous Monk has asked for the wisdom of the Perl Monks concerning the following question:

Hi All,

I am running my perl in Solaris.I could able to make zip file successfully using Archive::Zip.

But the problem is I am not able to unzip it using command unzip . I am getting the below error

"CheckDir error : Cannnot create unable to process /root/raja/plpgm/a.txt

But I moved the same zip file to Windows OS and it unzipped successfully.

Please help me..

Below is my code .

#!/usr/bin/perl use Archive::Zip qw( :ERROR_CODES :CONSTANTS ); my $zip = Archive::Zip->new(); $EMPFILE = "/root/raja/plpgm/a.txt"; $zip->addFile( $EMPFILE ) or warn "Error adding file $memberName\n"; if ($zip->writeToFileNamed('/root/raja/dummy.zip') != AZ_OK) { # writ +e to disk print "Error in archive creation!"; } else { print "Archive created successfully!"; }

Thanks
Suriya

20071014 Janitored by Corion: Added formatting, code tags, as per Writeup Formatting Tips

Replies are listed 'Best First'.
Re: PERL : unzip issue
by graff (Chancellor) on Oct 13, 2007 at 04:19 UTC
    Please do NOT use a "pre" tag when you post. Refer to Writeup Formatting Tips; just put a "code" tag at the start of your code, and remember to include the "/code" at the end (with angle brackets, of course).

    It seems likely that if you are not doing this as the root user, then you do not have write permission in the /root directory, and that is as it should be.

    Try using chdir to set your current working directory to "/root/raja/plpgm" (assuming this exists, and the file of interest is there), and then zip the file, so that the zipped version does not refer to the absolute path. That way, when you unzip the file, you can do so anywhere -- it won't have to be in put back in "/root/raja/plpgm".

    (There may be options in Archive::Zip to control the use of paths. Have you read the manual?)

      I suggest you go for the second solution suggested by graff .I have worked on a similar script but its for unzipping.

      The world is so big for any individual to conquer

        Thats a defeatist attitude, ofcourse the world, no matter how big can be conquered