我想创建一个目录,如果它不存在。
使用is_dir函数就足够了吗?
if ( !is_dir( $dir ) ) {
mkdir( $dir );
}
或者我应该结合is_dir与file_exists?
if ( !file_exists( $dir ) && !is_dir( $dir ) ) {
mkdir( $dir );
}
我想创建一个目录,如果它不存在。
使用is_dir函数就足够了吗?
if ( !is_dir( $dir ) ) {
mkdir( $dir );
}
或者我应该结合is_dir与file_exists?
if ( !file_exists( $dir ) && !is_dir( $dir ) ) {
mkdir( $dir );
}
当前回答
我就是这么做的
if(is_dir("./folder/test"))
{
echo "Exist";
}else{
echo "Not exist";
}
其他回答
检查路径是否为directory的方法如下:
function isDirectory($path) {
$all = @scandir($path);
return $all !== false;
}
注意:对于不存在的路径,它也会返回false,但是对于UNIX/Windows非常有效
在Unix系统上,两者都将返回true——在Unix中,所有东西都是一个文件,包括目录。但要测试该名称是否已被占用,您应该同时检查两个名称。可能会有一个名为“foo”的常规文件,这将阻止你创建一个名为“foo”的目录。
我认为这是dir检查的快速解决方案。
$path = realpath($Newfolder);
if (!empty($path)){
echo "1";
}else{
echo "0";
}
第二个变量在问题post是不行的,因为,如果你已经有同名的文件,但它不是一个目录,!file_exists($dir)将返回false,文件夹将不会被创建,所以错误“failed to open stream: No such file or directory”将会发生。在Windows中,'文件'和'文件夹'类型是不同的,因此需要同时使用file_exists()和is_dir(),例如:
if (file_exists('file')) {
if (!is_dir('file')) { //if file is already present, but it's not a dir
//do something with file - delete, rename, etc.
unlink('file'); //for example
mkdir('file', NEEDED_ACCESS_LEVEL);
}
} else { //no file exists with this name
mkdir('file', NEEDED_ACCESS_LEVEL);
}
我就是这么做的
if(is_dir("./folder/test"))
{
echo "Exist";
}else{
echo "Not exist";
}