Page 1 sur 1

fichier en read-only : comment effacer ?

Posté : 23 déc. 2009, 17:51
par sergiobzh
Bonjour,
j'ai démarré le PHP il y a qqs jours et j'ai toujours réussi à me débrouiller avec les docs, forums, etc.
Et là je suis sur un problème surement basique mais pas moyen de trouver la solution .
Je crée des fichiers avec fopen (mode 'w') et pas moyen de les effacer par unlink : permission denied.

Je crée tous mes fichiers avec cette function :
function WriteToFile ($fn,$ln) {
    $ouvre=fopen($fn,"a");
    fwrite($ouvre,$ln . chr(10));
    fclose($ouvre);
}
En fait, je crée un fichier TOTOtmp.txt avec ma function WriteToFile() puis je le copie en TOTO.txt.
TOTO.txt n'est pas readonly mais TOTOTmp.txt est readonly d'où le problème.
	copy($_SESSION['FNameTmp'],$_SESSION['FName']);
chmod ($_SESSION['FNameTmp'],777);
unlink ($_SESSION['FNameTmp']);
L'erreur :

Code : Tout sélectionner

unlink(./Day1_ST01Tmp.txt) [<a href='function.unlink'>function.unlink</a>]: Permission denied
Mettre le fichier en 777 ne change rien. Pourquoi le fichier se crée en 777. IL faudrait changer le umask ? Mais je suis sous Windows , c'est peut-être là le problème ?

Je suis avec Zend sous Windows XP et EasyPHP 5.3.
Merci pour l'aide.
Sergio

Re: fichier en read-only : comment effacer ?

Posté : 23 déc. 2009, 22:57
par Ryle
De mémoire, le fait de donner les droits 777 au fichier autorise les actions de lecture+écriture+exécution pour tous les utilisateurs (chose dont tu n'as en principe pas besoin ici)... en revanche, pour pouvoir supprimer un fichier, il me semble qu'il est nécessaire pour php d'avoir les droits d'écriture sur le dossier contenant le fichier à supprimer... à vérifier :)

Re: fichier en read-only : comment effacer ?

Posté : 28 déc. 2009, 22:57
par sergiobzh
Jamais trouvé le problème. J'ai montré à des collègues, idem. J'ai réécrit ce qui concernait les fichiers et ça fonctionne !! Va comprendre.
En tous cas merci d'avoir répondu.

Re: fichier en read-only : comment effacer ?

Posté : 29 déc. 2009, 01:47
par stealth35
simpa ta fonction WriteToFile, mais ca existe deja sous PHP (file_put_contents):
http://www.php.net/manual/fr/function.f ... ntents.php