【发布时间】:2010-06-26 03:20:22
【问题描述】:
我正在使用此代码来处理我的文件夹和文件,其中包含两个子:
“子文件夹”仅用于文件夹名称
仅带有扩展名的文件名的“子文件”
但我意识到“子文件夹”在重命名过程中会与我的带有扩展名的文件混淆。
如何区分进程,或者告诉“子文件夹”重命名不带扩展名的“名称”和“子文件”重命名带有扩展名的“名称”的智能方法是什么?
find(\&folders, $dir_source);
sub folders {
my $fh = $File::Find::dir;
my $artist = (File::Spec->splitdir($fh))[3];
if (-d $fh) {
my $folder_name = $_;
# some substitution
rename $folder_name, $_;
}
}
find(\&files, $dir_source);
sub files {
/\.\w+$/ or return;
my $fn = $File::Find::name;
my ($genre, $artist, $boxset, $album, $disc);
if ($fn =~ /Singles/ or $fn =~ /Box Set/) {
($genre, $artist, $boxset, $album, $disc) = (File::Spec->splitdir($fn))[2..6];
}
else {
($genre, $artist, $album, $disc) = (File::Spec->splitdir($fn))[2..5];
}
if (-e $fn) {
my $file_name = $_;
# some substitution
rename $file_name, $_;
}
}
【问题讨论】:
标签: perl