値がファイルのフル パスである変数がある 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