Fonction ''couper coller" dossiers [Résolu]

mictif 105 Messages postés lundi 13 décembre 2004Date d'inscription 14 février 2013 Dernière intervention - 26 juil. 2005 à 13:00 - Dernière réponse : malalam 10918 Messages postés lundi 24 février 2003Date d'inscription 2 mars 2010 Dernière intervention
- 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>
Afficher la suite 

Votre réponse

9 réponses

Meilleure réponse
mictif 105 Messages postés lundi 13 décembre 2004Date d'inscription 14 février 2013 Dernière intervention - 26 juil. 2005 à 14:08
1
Merci
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 :)

Merci mictif 1

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 96 internautes ce mois-ci

Commenter la réponse de mictif
malalam 10918 Messages postés lundi 24 février 2003Date d'inscription 2 mars 2010 Dernière intervention - 26 juil. 2005 à 13:09
0
Merci
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
Commenter la réponse de malalam
mictif 105 Messages postés lundi 13 décembre 2004Date d'inscription 14 février 2013 Dernière intervention - 26 juil. 2005 à 13:15
0
Merci
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
Commenter la réponse de mictif
malalam 10918 Messages postés lundi 24 février 2003Date d'inscription 2 mars 2010 Dernière intervention - 26 juil. 2005 à 13:23
0
Merci
Si si, mon code deplace tout, crois moi. Tu peux tester l'explorateur si tu veux, tu verras.
Commenter la réponse de malalam
malalam 10918 Messages postés lundi 24 février 2003Date d'inscription 2 mars 2010 Dernière intervention - 26 juil. 2005 à 13:25
0
Merci
En fait ce que tu n'as pas realise, je pense, c'est que renommer, en php, est similaire a un deplacement.
Commenter la réponse de malalam
mictif 105 Messages postés lundi 13 décembre 2004Date d'inscription 14 février 2013 Dernière intervention - 26 juil. 2005 à 13:51
0
Merci
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
Commenter la réponse de mictif
malalam 10918 Messages postés lundi 24 février 2003Date d'inscription 2 mars 2010 Dernière intervention - 26 juil. 2005 à 13:58
0
Merci
Oui le code est adaptable sans probleme en php4.
Commenter la réponse de malalam
malalam 10918 Messages postés lundi 24 février 2003Date d'inscription 2 mars 2010 Dernière intervention - 26 juil. 2005 à 14:00
0
Merci
Mais le principe est simple...



repA

repB

copier repA dans repB

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



en gros.
Commenter la réponse de malalam
malalam 10918 Messages postés lundi 24 février 2003Date d'inscription 2 mars 2010 Dernière intervention - 26 juil. 2005 à 14:50
0
Merci
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.
Commenter la réponse de malalam

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.