in reply to Path Of an extracted Files

This is how i'm doing it :
print "Y:\\autoupload\\Site_Dict\\Inbox\\$y\n"; $zip->extractMemberWithoutPaths($y,"Y:\\autoupload\\Site_D +ict\\Inbox\\"."$y");
Oliver

Replies are listed 'Best First'.
Re: Re: Path Of an extracted Files
by graff (Chancellor) on Mar 12, 2004 at 04:49 UTC
    To summarize the problem (which I gather you haven't figured out yet)... Here's your code that causes the error:
    $zip->extractMemberWithoutPaths($y,"Y:\\autoupload\\Site_Dict\\Inbox\\ +"."$y");
    And here's the error report that you say it generates:
    mkdir AFCUArchive::Zip::.: Invalid argument [somewhere in Archive::Zip +]
    (which frankly doesn't look like what I would expect, but I suppose it's plausible enough). And here's the relevant part of the Archive::Zip man page (you did read this part, didn't you?):
    extractMemberWithoutPaths( $memberOrName [, $extractedName ] ) Extract the given member, or match its name and extract it. Does not use path information (extracts into the current directory). Returns undef if member doesn't exist in this Zip. If optional second arg is given, use it as the name of the extracted member (its paths will be deleted too)...
    From reading the man page, I would conclude that you are not supposed to try to specify a path for output as (part of) an arg being passed to this method. Instead, you would want to do something like this:
    # read the zip file into $zip, then chdir $path_where_data_should_go or die "Can't get to $path_where_data_should_go: $!"; for my $mbr ( $zip->members ) { $zip->extractMemberWithoutPaths( $mbr ); }