如何在Perl中查找文件的父目录?

9
在Perl中,是否有一些函数可以返回文件的父目录?

Cwd::realpath的建议在某些情况下是很好的,遗憾的是那个答案被删除了。 - ysth
@Zerobu:提供一个例子,这样我们就知道你在说什么了。 - ysth
3个回答

10
如果你有一个路径名,你可以使用 File::Basename 中的 dirname 函数。
 use File::Basename;
 my $directory = dirname( $path );

你的输入内容是什么?


只返回文件名,不包含任何前导或尾随斜杠。 - Zerobu
1
“just a filename” 是什么意思? - ysth
@Zerobu:所以这是一个相对路径。dirname仍然会给你想要的东西,可能除了当前目录中的文件-查看文档并自行查看。 - Cascabel
例如文件名带有扩展名,如hello.txt或hello.gif。 - Zerobu
如果你只有文件名而没有其他信息,那么你就没办法了。 - brian d foy
另外,请更新您的问题并提供更多信息。不要将其埋在评论中。 - brian d foy

0

您可以使用上面最聪明的 Brian 方法,如果 $directory 等于 ".",则将 "." 替换为您当前的工作目录。


你也可以使用File::Spec将相对路径转换为绝对路径,并清理各种/./和/../问题。 - brian d foy

0
另外请注意Path::Class,它使得处理路径变得更加合理。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接