Une boucle d'attente tant qu'1 fichier existe

fdu -  
 fdu -
Bonjour,
J'ai un traitement qui modifie le contenu d'un fichier et une fois ce traitement terminé réaffiche une page qui lit ce même fichier pour en afficher un compte rendu.
Le problème est que parfois le traitement est un peu long et le réaffichage ne me donne pas la réalité du fichier. J'ai donc ajouté une boucle d'attente en testant l'existence du fichier. Seulement elle ne détecte pas que le fichier n'existe plus et continue indéfiniment de boucler !

Voici le code :

$fd1 = fopen($_REQUEST['repertoire'].$_REQUEST['fichier'],"r");
$fd2 = fopen($_REQUEST['repertoire'].$_REQUEST['fichier'].".TEMP","w");
while ($buffer = fgets($fd1)) {
if (substr($buffer,0,4) == "0602") {
fwrite($fd2,substr($buffer,0,118).sprintf("%-31s",strtoupper($_REQUEST['newlibelle'])).substr($buffer,- 13));
} else {
fwrite($fd2,$buffer);
}
}
fclose ($fd1);
fclose ($fd2);
copy ($_REQUEST['repertoire'].$_REQUEST['fichier'],$_REQUEST['repertoire'].$_REQUEST['fichier'].".COPIE.".$horodate);
unlink($_REQUEST['repertoire'].$_REQUEST['fichier']);
copy ($_REQUEST['repertoire'].$_REQUEST['fichier'].".TEMP",$_REQUEST['repertoire'].$_REQUEST['fichier']);
unlink($_REQUEST['repertoire'].$_REQUEST['fichier'].".TEMP");
majrefresh(strtoupper($_REQUEST['newlibelle']),"",strtoupper($_REQUEST['repertoire']),strtoupper($_REQUEST['fichier']));

while (file_exists($_REQUEST['repertoire'].$_REQUEST['fichier'].".TEMP")) {
echo $_REQUEST['repertoire'].$_REQUEST['fichier'].".TEMP1 ";
echo "le fichier est présent<br>";
}
echo "le fichier est absent<br>";

echo "<script type=\"text/javascript\">";
echo "javascript:opener.location.reload();";
echo "javascript:self.close();";
echo "</script>";

Quelqu'un pourrait-il me dire ce qui ne marche pas ?
Configuration: Windows XP
Internet Explorer 7.0

1 réponse

  1. Mimiste Messages postés 1159 Statut Membre 206
     
    hello

    essai avec is_file($fichier) pour voir plutot qu'avec file_exists

    0
    1. fdu
       
      Bonjour Mimiste,

      Merci de ta réponse mais le problème subsiste toujours avec is_file.
      0