Fonction ''couper coller" dossiers

Résolu
mictif Messages postés 105 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 14 février 2013 - 26 juil. 2005 à 13:00
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 - 26 juil. 2005 à 14:50
,

Besoin d'un pro php

bonjour,
j'ai une fonction qui ne fonctionne pas et je voi pas pourquoi elle
plante ou bien eme un autre moyen d'arrivé a faire ce que celle ci
devrai faire!

je vous explique ce qu'elle est sensé faire :

deplacer le dossier A vers le dossier B

-creer un dossier C avec le meme nom que le dossier A dans le dossier B

-parcourir le dossier A et

----------si il y a un fichier le copiedans le dossier C puis le supprimer du dossier A

----------si c'est un dossier : faire la meme chose pour ce dossier (pour avoir tout le contenu du dossier etc.

voila mon code :Code : <table cellpadding="0" cellspacing="0" width="90%">----,

function dep_dir($source,$destination){

if (!is_dir($destination)){

mkdir($destination,0777);

}

$dossier=opendir($source);
while (false !$fichier readdir($dossier)) {

if (is_dir($source.\"/\".$fichier)){

dep_dir($source.\"/\".$fichier, $destination.\"/\".$fichier);

}

else{

copy ($source.\"/\".$fichier, $destination.\"/\".$fichier);

unlink($source.\"/\".$fichier);

}

}

@closedir($dossier);

rmdir($source);

}
</td>




si quelq'un peu m'aider ca serai cool


merci !



</td></tr></tbody>
</table>

9 réponses

mictif Messages postés 105 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 14 février 2013 2
26 juil. 2005 à 14:08
Oui mais cela pose probleme pour les sous dossiers qui n'aurons plus un bon chemin dans ce cas non ?. :)

enfin bref merci beaucoup en faite je vien de comprendre ou etait mon
erreur grace a ton example.Je vous remet le code ici corrigé avec les
endroit qu'il manqué en gras .. comme ca si ca interesse quelqu'un :)



function deplace_dir($source,$destination){

if (!is_dir($destination)){

mkdir($destination,0777);

}

$dossier= opendir($source);



while (false != = ($fichier = readdir($dossier))) { // attention a la version de php pour le "!= ="

$l = array('.', '..');

if (!in_array( $fichier, $l)){


if
(is_dir($source."/".$fichier)){



deplace_dir($source."/".$fichier, $destination."/".$fichier);

}

else{


copy
($source."/".$fichier, $destination."/".$fichier);



unlink($source."/".$fichier);

}

}

}

@closedir($dossier);

rmdir($source);

}



voila :)
2
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
26 juil. 2005 à 13:09
Hello,



voici un extrait de mon explorateur php, pour deplacer des dossiers ou des repertoires :



protected function deplacer_ ($destination, $fichiers) { // methode pour deplacer fichier ou repertoire

foreach ($fichiers as $fichier) {

$destTemp =$destination. '/'.basename ($fichier);

if (!file_exists ($destTemp)) {

$mod = $this -> checkMod ($destination);

$modTmp = $this -> checkMod ($fichier);

rename ($fichier, $destTemp);

if ($mod !== false)


$this -> modBack ($mod,
$destination);

}

}

}



la methode checkMod est la pour verifier le mod du fichier/repertoire, et le changer si besoin est.

modBack remet le mod tel qu'il etait au depart.



Tu peux t'en inspirer.



Sinon va voir ma source directement et analyse :

http://phpcs.com/code.aspx?ID=31562
0
mictif Messages postés 105 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 14 février 2013 2
26 juil. 2005 à 13:15
oui mais la il y a pas tout les sous dossier et sous-sous dossier.. la est mon probleme...

en tout cas merci j'examine ca deja
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
26 juil. 2005 à 13:23
Si si, mon code deplace tout, crois moi. Tu peux tester l'explorateur si tu veux, tu verras.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
26 juil. 2005 à 13:25
En fait ce que tu n'as pas realise, je pense, c'est que renommer, en php, est similaire a un deplacement.
0
mictif Messages postés 105 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 14 février 2013 2
26 juil. 2005 à 13:51
je ne savais pas cela !

en fait la version de php que j'ai est la 4 donc la POO ca ne marchera pas ! et puis je comprend pas vraiment ^^

je vais essayer de traduire tout ca sans les class donc.. snif
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
26 juil. 2005 à 13:58
Oui le code est adaptable sans probleme en php4.
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
26 juil. 2005 à 14:00
Mais le principe est simple...



repA

repB

copier repA dans repB

rename (repB, repA.'/'.repB);



en gros.
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
26 juil. 2005 à 14:50
Les sous-dossiers se fichent pas mal de ou ils sont, lol. Au lieu
d'etre sour repB, ils seront sour repA/repB pi basta. Ca ne change rien.
0
Rejoignez-nous