|
From: David Walker on 29 Jan 2007 17:27 Hi I am trying to create a tar archive on Windows XP with the Perl code below. However, when I look at the archive created (using WinZip 10.0) all the directory information is lost, and when I untar it using WinZip all I get is all the files in the same directory. Can some kind person please tell me how I can create the tar file so that when it is untar'd the directory structure will be preserved. Thanks David use Archive::Tar; use IO::Zlib; use File::Find; $dir = "c:/docume~1/david/somedir"; $archive = "c:/docume~1/david/archive.tar"; $tar = Archive::Tar->new; (@files); find(\&wanted, $dir); $tar->add_files(@files); $tar->write($archive); sub wanted{ push(@files,$File::Find::name); }
From: Sisyphus on 29 Jan 2007 23:17 "David Walker" <david(a)cs.cf.ac.uk> wrote in message news:Gxuvh.18350$8j7.13192(a)newsfe1-win.ntli.net... > Hi > > I am trying to create a tar archive on Windows XP with the Perl code > below. However, when I look at the archive created (using WinZip 10.0) all > the directory information is lost, and when I untar it using WinZip all I > get is all the files in the same directory. Can some kind person please > tell me how I can create the tar file so that when it is untar'd the > directory structure will be preserved. > From the "FAQ" section in 'perldoc Archive::Tar' : -- quote -- I'm using WinZip, or some other non-POSIX client, and files are not being extracted properly! By default, "Archive::Tar" is in a completely POSIX-compatible mode, which uses the POSIX-specification of "tar" to store files. For paths greather than 100 characters, this is done using the "POSIX header prefix". Non-POSIX-compatible clients may not support this part of the specification, and may only support the "GNU Extended Header" functionality. To facilitate those clients, you can set the $Archive::Tar::DO_NOT_USE_PREFIX variable to "true". See the "GLOBAL VARIABLES" section for details on this variable. -- end quote -- Hopefully, that deals with the problem you're facing. (If not, let us know - and also tell us which version of Archive::Tar you have.).) Cheers, Rob
From: David Walker on 30 Jan 2007 17:41 Rob Yes that worked! I was using Tar 1.07, which didn't have the DO_NOT_USE_PREFIX feature, so I've now installed Tar 1.30. Thanks for your help. David "Sisyphus" <sisyphus1(a)nomail.afraid.com> wrote in message news:45bec765$0$9776$afc38c87(a)news.optusnet.com.au... > > "David Walker" <david(a)cs.cf.ac.uk> wrote in message > news:Gxuvh.18350$8j7.13192(a)newsfe1-win.ntli.net... >> Hi >> >> I am trying to create a tar archive on Windows XP with the Perl code >> below. However, when I look at the archive created (using WinZip 10.0) >> all the directory information is lost, and when I untar it using WinZip >> all I get is all the files in the same directory. Can some kind person >> please tell me how I can create the tar file so that when it is untar'd >> the directory structure will be preserved. >> > > From the "FAQ" section in 'perldoc Archive::Tar' : > > -- quote -- > I'm using WinZip, or some other non-POSIX client, and files are not > being extracted properly! > By default, "Archive::Tar" is in a completely POSIX-compatible > mode, > which uses the POSIX-specification of "tar" to store files. For > paths greather than 100 characters, this is done using the "POSIX > header prefix". Non-POSIX-compatible clients may not support this > part of the specification, and may only support the "GNU Extended > Header" functionality. To facilitate those clients, you can set the > $Archive::Tar::DO_NOT_USE_PREFIX variable to "true". See the > "GLOBAL > VARIABLES" section for details on this variable. > -- end quote -- > > Hopefully, that deals with the problem you're facing. (If not, let us > know - and also tell us which version of Archive::Tar you have.).) > > Cheers, > Rob >
|
Pages: 1 Prev: html tags and perl Next: Max size of an array used in perl. |