2011-04-05 13 views
5

내 응용 프로그램에이 코드가 있습니다. 응용 프로그램의 severals 사용자가 종종 경쟁 조건에서 실행합니다.unlink/file_exists 및 파일을 찾을 수 없습니다.

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

이 코드 줄에서는

unlink와 같은 severals 오류가 계속 발생합니다. (파일) : 해당 파일 또는 디렉토리 없음

서버는 Apache 2.2 및 PHP 5.3.3을 실행합니다. 나는 경주 문제를 안다. 그러나 @ 연산자는 단지 악하다고 생각한다. clearstatcache()에 대한 매개 변수없이 동일한 오류가 발생하여 처음 시도했습니다. 어떻게해야 제대로 할 수 있습니까?

+0

약간의 코드를 추가 할 수 있습니까? –

+0

@experimentX하지만 바로 거기에 맞습니까? –

+0

@Pekka 글쎄, 내가 위의 코드에서 아무런 결함이 보이지 않는다. 나는이 코드에서 –

답변

5

으로는

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

더 좋은 방법이 될 수 있으므로, 코멘트에, 내 필요가 내가 그것을 삭제 마녀 과정을 알 수없는 파일을 삭제했는지 확인하는 것입니다 말했다.

많은 도움을 주셔서 감사합니다. severals 덧글로 다른 방법을 생각하는 것이 훨씬 쉽습니다.

6

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

내가 꽤 잘 될 것이라고 생각 시도 할 수 있습니다;

+1

그는 자신의 질문에 이것을 사용하고 싶지 않다고 말합니다. 그것은 유일한 선택일지도 모른다. –

관련 문제