3
我想用File :: Find來存檔所有的txt文件,刪除源文件並刪除空目錄。Perl檔案:: Tar
我很難用'$ tar-> rename()重命名文件;''因爲我想從完整路徑名稱中刪除它們,並只使用父目錄/ *。txt,但無論我嘗試的代碼是否只重命名一個文件。
我不知道執行「取消鏈接」功能的適當位置在哪裏。
謝謝。
use strict;
use warnings;
use Archive::Tar;
use File::Find;
use File::Basename;
my $dir = "E:/";
my @files =();
find(\&archive, $dir);
sub archive {
/\.txt$/ or return;
my $fd = $File::Find::dir;
my $fn = $File::Find::name;
my $folder = basename($fd);
my $file = $_;
push @files, $fn;
my $tar = Archive::Tar->new();
$tar->add_files(@files);
$tar->rename($fn, $folder."\\".$file);
$tar->write($fd.'.tar');
unlink $fn;
finddepth(sub{rmdir},'.');
}
的最佳解決方案。這正是我所期待的。無限感謝。 – thebourneid 2010-12-01 04:06:42