3
File :: Findですべてのtxtファイルをアーカイブして、ソースファイルを削除して空のディレクトリを削除します。Perl Archive :: 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
確かに、非常に役に立ちます。 – taiko