使用perl检查Linux中是否存在目录

时间:2016-08-01 07:13:48

标签: linux perl directory

subroutine: searchFileFromDirec

我使用perl在linux上编程。我正在创建一个程序,用户可以在其中输入目录和文件名。然后程序将检查给定目录是否存在,并且还搜索该目录中的给定文件名。但我的问题是验证输入的目录是否有效。

1 个答案:

答案 0 :(得分:1)

您必须指定目录的路径是绝对路径还是相对路径。如果是绝对的,您可以使用-e查看是否存在,如果给定的输入是目录,则可以-d查看。

if ( -e $dir and -d $dir) {
    print "\nyour folder exists";
}

如果路径是相对路径,则必须创建绝对路径。为此,您必须使用$base您的drvives(您需要为每个驱动器执行此操作),然后使用rel2abs查找给定相对路径的绝对路径。如果文件夹存在,$abs_path将包含绝对路径,否则它的值将为undef。 Bellow作为使用驱动器c:\上的相对路径搜索文件夹的示例:

$base = 'c:\';
$abs_path = File::Spec->rel2abs( $relative_path ) ;
$abs_path = File::Spec->rel2abs( $relative_path, $base ) ;
if ( defined $abs_path ) {
    print "\n folder exists ";
}

有关更多选项,请参阅perldoc -f -X