我有以下perl腳本,旨在接受命令行參數,將所有用戶數據文件壓縮到zip文件中,然後刪除原始數據。腳本沒有問題,但是當以不同的用戶作爲參數再次運行時,它會覆蓋userData.zip文件中的以前的數據。我搜索了並且無法找到如何執行此任務。它應該繼續接受用戶作爲參數並將其文件夾追加到userData.zip文件中。在perl中將文件添加到壓縮文件夾中
任何幫助表示讚賞。
use 5.14.2;
use strict;
use warnings;
use Archive::Zip qw(:ERROR_CODES :CONSTANTS);
use File::Path;
my ($DATAFILEIN, $DATAFILEOUT);
my ($new,$zip);
use constant COLUMNS => 6;
sub main {
verifyArguments();
setDataFileIn();
zipFiles();
deleteUserFiles();
#setDataFileOut();
#printData();
#writeData();
}
sub verifyArguments {
if (!(@ARGV) || !(-e $ARGV[0])) {
die "\n\nYou must specify correct file name upon command invocation.\n\n";
}
}
sub setDataFileIn {
$DATAFILEIN = $ARGV[0];
}
sub zipFiles {
print "\nBacking up ".$DATAFILEIN."\n";
sleep 1;
$zip = Archive::Zip->new();
opendir (DIR, $DATAFILEIN) or die $!;
while (my $file = readdir(DIR)) {
# Use -f to look for a file
next unless (-f $DATAFILEIN."\\".$file);
$zip->addFile($DATAFILEIN."\\".$file,);
print "Added $file to zip\n";
}
closedir(DIR);
my $fileName = $DATAFILEIN;
unless ($zip->writeToFileNamed('userData.zip') == AZ_OK) {
die 'write error';
}
print "Successfully backed up $fileName to userData.zip\n";
}
sub deleteUserFiles{
rmtree($DATAFILEIN);
}
main();
你好,謝謝你的回覆。這份文件在哪裏列出?我在這裏搜索了perldoc.perl.org和perlmonks。我只是一個初學者,所以我需要查看示例以瞭解語法。 – Number41
@ Number41真的嗎?在幾乎任何搜索引擎上搜索「perl archive :: zip」都會產生一個[CPAN頁面](https://metacpan.org/pod/Archive::Zip)作爲第一個結果。 –
馬特,你是對的,搜索確實會把它作爲第一個結果。對不起,我的無知.........只是尋求一些幫助。我想我會在這裏找到一個更清晰和簡潔的答案,猜測我錯了。 – Number41