1

値がファイルのフル パスである変数がある perl プログラムがあります。

例えば:

$FullPath = "C:\sample\file.txt";

file.txt$FileName変数にファイル名( )、変数にパス( C:\sample\)を抽出したいFilePath

誰でもサンプルコードでこれを行うのを手伝ってもらえますか?

ありがとう

4

2 に答える 2

3
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();
于 2013-03-28T07:40:27.097 に答える
0

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
于 2013-03-28T10:31:13.223 に答える