使用File :: Find获取父目录名称的解决方案是什么?我知道如何只获取文件名或只获取目录路径,但我不知道如何为最后一个包含目录执行此操作.
例如,如果目录是/dir_1/dir_2/dir_3/.../dir_n/*.txt我需要获取' dir_n'名称.
use strict;
use warnings;
use File::Find;
my $dir = "some_path";
find(\&file_handle, $dir);
sub file_handle {
/\.txt$/ or return;
my $fd = $File::Find::dir;
my $fn = $File::Find::name;
# ...
}
Run Code Online (Sandbox Code Playgroud)
Jon*_*ler 16
给定目录路径,然后将File :: Basename(另一个核心模块)应用于路径以获取目录的最后一部分.
use strict;
use warnings;
use File::Find;
use File::Basename;
my $dir = "some_path";
find(\&file_handle, $dir);
sub file_handle {
/\.txt$/ or return;
my $fd = $File::Find::dir;
my $fn = $File::Find::name;
my $dir = basename($fd);
# ....
}
Run Code Online (Sandbox Code Playgroud)
#!/usr/local/bin/perl -w
use strict;
use File::Basename;
use Cwd 'abs_path';
my $f = "../some/path/to/this_directory/and_filename";
my $d = basename(dirname(abs_path($f)));
say $d;
Run Code Online (Sandbox Code Playgroud)
返回"this_directory"
| 归档时间: |
|
| 查看次数: |
12770 次 |
| 最近记录: |