値がファイルのフル パスである変数がある perl プログラムがあります。
例えば:
$FullPath = "C:\sample\file.txt";
file.txt
$FileName変数にファイル名( )、変数にパス( C:\sample\
)を抽出したいFilePath
。
誰でもサンプルコードでこれを行うのを手伝ってもらえますか?
ありがとう
値がファイルのフル パスである変数がある perl プログラムがあります。
例えば:
$FullPath = "C:\sample\file.txt";
file.txt
$FileName変数にファイル名( )、変数にパス( C:\sample\
)を抽出したいFilePath
。
誰でもサンプルコードでこれを行うのを手伝ってもらえますか?
ありがとう
use File::Basename qw( fileparse );
my ($fname, $dir) = fileparse($FullPath);
$FullPath
が含まれていないことに注意してくださいC:\sample\file.txt
。それを得るには、あなたが必要です
my $FullPath = "C:\\sample\\file.txt";
また
my $FullPath = 'C:\sample\file.txt';
常に使用してuse strict; use warnings;
ください!意味がないので警告したでしょう"\s"
。
任意のマシンで Windows パスを解析するには、次を使用できます。
use Path::Class qw( foreign_file );
my $file = foreign_file('Win32', $FullPath);
my $fname = $file->basename();
my $dir = $file->dir();
splitpath
から使用することをお勧めしますFile::Spec::Functions
。この関数は、ボリューム、ディレクトリ、およびファイル名を 3 つの個別の値として返します。
以下のコードは、これらの値を配列に入れ、次に 2 番目の (ディレクトリ) 要素を削除して最初の要素に追加し、 で必要なフル パスとファイル名を指定します@path
。
use strict;
use warnings;
use File::Spec::Functions 'splitpath';
my $full_path = 'C:\sample\file.txt';
my @path = splitpath $full_path;
$path[0] .= splice @path, 1, 1;
print "$_\n" for @path;
出力
C:\sample\
file.txt