PHP:如何检查文件是否不存在或权限是否被拒绝?

2022-01-04 00:00:00 permissions filesystems php

我想检查文件是否不存在.当 file_exists() 函数返回 false 时,我无法确定该文件是否不存在或我没有该文件的权限.

I want to check if file do not exists. When file_exists() function returns false I can't be sure if the file do not exist or I don't have permission to the file.

如何辨别这两种可能性?

How to discern that two possibilities?

推荐答案

我编写了检查文件是否存在的函数.如果文件系统中没有这样的文件,则返回false,否则返回true.我的函数检查(自下而上)目录结构.应该相当确定 $root 目录存在.

I wrote function which check if file can exists. It return false if there is no such file in filesystem, otherwise it returns true. My function checks (bottom-up) directory structure. One should be fairly sure that $root directory exists.

private function fileCanExists($root, $path) {
    $root .= '/';
    if (file_exists($root . $path))
        return true;
    while ($path != '.') {
        $path = dirname($path);
        if (file_exists($root . $path)) {
            if (is_readable($root . $path))
                return false;
            else
                return true;
        }
    }
    return false;
}

这就是我写的意思:

我想检查文件是否不存在.

I want to check if file do not exists.

相关文章