【发布时间】:2014-02-28 16:46:35
【问题描述】:
我想检查一个文件名中是否包含任何目录信息,最好不要使用像index($file_name,'/')!=-1 这样的系统相关黑客。我知道File::Spec 模块,但似乎找不到使用该模块做出此决定的方法。也许另一个模块会更好。以下是一些文件名示例:
# This does not have directory info, so the test should fail (i.e., return false)
my $file_name1='abc.txt';
# These do have directory info, so the test should succeed (i.e., return true)
my $file_name2='dir/abc.txt';
my $file_name3='/home/me/abc.txt';
my $file_name4='~me/abc.txt';
【问题讨论】:
-
所以你想要一种便携的方式来做
index($file_name,'/')!=-1? -
你在问题中给出的那些例子是路径,而不是文件名,除了
$file_name1,它确实是一个文件名。 -
@mob:除非您的世界只有基于 Unix 的系统,否则您会发现有许多不同的方法可以完全限定文件系统上的文件。文件的卷、路径和名称可以用多种不同的方式分隔,这就是
File::Spec存在的原因。 -
~me应该返回真还是假?它是一个目录,但不包含目录分隔符。 -
@ThisSuit,重读我的问题。具体来说,我想检查 file name 是否有任何目录信息。
~me看起来像文件名还是主目录?
标签: perl perl-module perlop