6

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

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

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

unlink(file): 没有这样的文件或目录

服务器运行 Apache 2.2 和 PHP 5.3.3。我知道种族问题,但认为 @ 运算符只是邪恶的。我第一次尝试不使用 clearstatcache() 的任何参数,但同样的错误。我怎样才能以正确的方式做到这一点?

4

2 回答 2

6

你可以试试这个

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

我认为会很好;

于 2011-04-05T08:20:36.510 回答
5

正如评论中所说,我需要确保我已经删除了文件,不知道女巫进程删除它,所以

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

可能是更好的方法。

非常感谢您的帮助,用几个评论来思考另一种方法要容易得多。

于 2011-04-05T09:39:36.323 回答