取消链接/ file_exists和找不到文件

时间:2011-04-05 08:09:33

标签: php file-exists unlink

我的应用程序中有这个代码,通常由我的应用程序的几个用户在竞争条件下运行

clearstatcache(TRUE, $filepath);
if(file_exists($filepath)) unlink($filepath);

但是,对于这行代码,我每天仍有几个错误,如

  

取消链接(文件):没有这样的文件或   目录

服务器运行Apache 2.2和PHP 5.3.3。我知道种族问题,但认为@操作员只是邪恶。我首先尝试没有任何参数clearstatcache(),具有相同的错误。 我怎么能以正确的方式做到这一点?

2 个答案:

答案 0 :(得分:6)

你可以试试这个

if(@unlink($path)) {
  echo "Deleted file "; 
}
else{
  echo "File can't be deleted";
}

我认为它会很好;

答案 1 :(得分:5)

正如评论中所述,我的需要是确保我已删除该文件,而不是知道女巫进程删除它,所以

@unlink($filepath);
clearstatcache(TRUE, $filepath);
if(file_exists($filepath)) throw new Exception('file not deleted : ' . $filepath);

可能是更好的方式。

非常感谢您的帮助,通过多次评论来思考另一种方式会更容易。