如何检查目录是否存在?“is_dir”、“file_exists”还是两者兼而有之?

php
2022-08-30 05:55:59

我想创建一个目录,如果它尚不存在。

使用该函数是否足以达到此目的?is_dir

if ( !is_dir( $dir ) ) {
    mkdir( $dir );       
}

或者我应该与?is_dirfile_exists

if ( !file_exists( $dir ) && !is_dir( $dir ) ) {
    mkdir( $dir );       
} 

答案 1

两者在Unix系统上都返回true - 在Unix中,一切都是一个文件,包括目录。但是要测试该名称是否被采用,您应该同时检查两者。可能有一个名为“foo”的常规文件,这会阻止您创建目录名称“foo”。


答案 2
$dirname = $_POST["search"];
$filename = "/folder/" . $dirname . "/";

if (!file_exists($filename)) {
    mkdir("folder/" . $dirname, 0777);
    echo "The directory $dirname was successfully created.";
    exit;
} else {
    echo "The directory $dirname exists.";
}

推荐