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 に答える