2011-04-05 15 views
5

tengo este código en mi aplicación, a menudo funcionar en condición de carrera por severals usuarios de mi solicituddesvincular/file_exists y archivo no encontrado

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

Pero, para esta línea de código, todavía tengo severals errores cada uno día como

unlink (archivo): No existe el archivo o directorio

servidor ejecutar Apache 2.2 y PHP 5.3.3. Conozco el problema de la raza, pero creo @ operador es simplemente malvado. Primero lo intenté sin ningún parámetro para clearstatcache(), con el mismo error. ¿Cómo puedo hacerlo de la manera correcta?

+0

podría agregar un poco de su código, por favor. –

+0

@experimentX pero está ahí, ¿no? –

+0

@Pekka Bueno, no veo ningún error en el código anterior, supongo –

Respuesta

5

Como se ha dicho en el comentario, mi necesidad es estar seguro de que han eliminado el archivo, no saber bruja proceso de eliminarlo, por lo

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

puede haber una mejor manera.

Muchas gracias por su ayuda, es mucho más fácil pensar en otra manera de hacerlo con varios comentarios.

6

puede probar esta

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

Creo que va a ser bastante bien;

+1

. Él dice en su pregunta que no quiere usar esto. Puede ser la única opción, sin embargo. –

Cuestiones relacionadas