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