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