取消取消链接“没有这样的文件或目录”?

时间:2019-12-03 07:56:54

标签: php kohana sentry

我正在使用Sentry监视网站上的错误。我有一段代码给我带来麻烦,它来自旧的Kohana(PHP框架)模块。

提供此代码(由我编辑):

if ($delete === TRUE)
{
    $file_tmp = $file->getRealPath();
    clearstatcache(TRUE, $file_tmp);
    if (file_exists($file_tmp))
    {
        return @unlink($file_tmp);
    }
    return FALSE;
}

如何做到这一点,以免在Sentry上触发此类错误:

Warning: unlink(/var/www/my-hostname-files/application/cache/25/2530cfe0309c86c52f8dda53ca493f4cf72fdbd3.cache): No such file or directory

原始代码只是较大的IF和unlink调用,但似乎在file_exists调用和unlink之间的某个位置,其他一些进程会删除文件?!

谢谢!

1 个答案:

答案 0 :(得分:1)

您可以暂时禁用错误报告,而无需强行发出禁止警告。

  

注意::尝试删除目录时,必须首先递归删除其中的所有文件。

if ($delete === TRUE)
{
    $file_tmp = $file->getRealPath();
    clearstatcache(TRUE, $file_tmp);
    if (file_exists($file_tmp))
    {
        // store current error reporting level
        $level = error_reporting();

        // turn completely off
        error_reporting(0);

        // unlink and store state
        $state = unlink($file_tmp);

        // restore error reporting level
        error_reporting($level);

        // return unlink state
        return $state;
    }
    return FALSE;
}