Soyez le premier à donner votre avis sur cette source.
Snippet vu 6 264 fois - Téléchargée 16 fois
<?php /*------------------------------------------------------------------------------------- FONCTION PRINCIPAL DEPLACER REPERTOIRE -------------------------------------------------------------------------------------*/ function Deplacer_Repertoire($Source,$Cible,$SupprimerOriginal=false){ if(substr($Source,-1,1)!=DIRECTORY_SEPARATOR){$Source.=DIRECTORY_SEPARATOR;} if(substr($Cible,-1,1)!=DIRECTORY_SEPARATOR){$Cible.=DIRECTORY_SEPARATOR;} $Rep_Source = opendir($Source); while($Contenu = readdir($Rep_Source)){ if($Contenu != "." and $Contenu!=".."){ if(is_dir($Source.$Contenu) ){ mkdir($Cible.$Contenu); Deplacer_Repertoire($Source.$Contenu,$Cible.$Contenu); if($SupprimerOriginal){ rmdir($Source.$Contenu); } }else{ if($SupprimerOriginal){ rename($Source.$Contenu,$Cible.$Contenu); }else{ copy($Source.$Contenu,$Cible.$Contenu); } } } } closedir($Rep_Source); if($SupprimerOriginal){ rmdir($Source); } } /*------------------------------------------------------------------------------------- COMMANDE DE DEPLACEMENT -------------------------------------------------------------------------------------*/ Deplacer_Repertoire(dirname(__FILE__).DIRECTORY_SEPARATOR."melrose".DIRECTORY_SEPARATOR, dirname(__FILE__).DIRECTORY_SEPARATOR."Ok".DIRECTORY_SEPARATOR); ?>
27 mars 2009 à 11:20
Je note :
- Vérification des droits.
- SPL
- Revoir le nom de la fonction
- Exeption
- Schéma de Classe
Merci bien prochaine version la semaine prochaine !
Cordialement
TheWeasel47
27 mars 2009 à 10:09
De plus, avec l'arrivée de PHP 5.2 (dois-je vraiment dire la date?), est arrivé la SPL, qui te permet dans ton cas de parcourir un répertoire de manière beaucoup plus performante que les vieux opendir/readdir. Regarde du côté de DirectoryIterator.
Le nom de ta fonction ne convient pas. En effet, outre le fait qu'elle ne soit pas anglaise (mais ce n'est pas un problème en soi ;)), le terme "déplacer" perd tout son intérêt lorsque tu met le dernier paramètre à false. En effet, tu ne fait plus un déplacement mais une copie !
J'aurais plus vu une classe statique, avec une méthode cp et une méthode mv, qui appèlent toute deux une méthode privée qui s'occupe de déplacer récursivement ou pas un fichier/répertoire, en fonction des paramètres données.
Avec ceci j'aurai joué sur la classe DirectoryIterator pour le parcours de dossier/fichier et j'aurais lancé des exceptions si je n'avais pas le droit de copier/déplacer/supprimer un élément.
Voilà quelques idées d'améliorations ;)
26 mars 2009 à 21:38
IL me marqué que la source été désactivé.
pour info j'étais sous IE :D
Bon Courage pour la correction.
26 mars 2009 à 21:08
Ajout => Description + Fichiers + etc. => Prévisualisation => Mot clés => Terminé
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.