begin process at 2012 05 30 20:54:11
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive PHP

 > 

Archives

 > 

AU SECOURS !!!

 > 

Fonction ''couper coller" dossiers


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Fonction ''couper coller" dossiers

mardi 26 juillet 2005 à 13:00:41 | Fonction ''couper coller" dossiers

mictif


Message   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 :


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);
}


si quelq'un peu m'aider ca serai cool Smile
merci !

mardi 26 juillet 2005 à 13:09:23 | Re : Fonction ''couper coller" dossiers

malalam

Administrateur CodeS-SourceS
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




mardi 26 juillet 2005 à 13:15:13 | Re : Fonction ''couper coller" dossiers

mictif

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

mardi 26 juillet 2005 à 13:23:57 | Re : Fonction ''couper coller" dossiers

malalam

Administrateur CodeS-SourceS
Si si, mon code deplace tout, crois moi. Tu peux tester l'explorateur si tu veux, tu verras.
mardi 26 juillet 2005 à 13:25:07 | Re : Fonction ''couper coller" dossiers

malalam

Administrateur CodeS-SourceS
En fait ce que tu n'as pas realise, je pense, c'est que renommer, en php, est similaire a un deplacement.
mardi 26 juillet 2005 à 13:51:54 | Re : Fonction ''couper coller" dossiers

mictif

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

mardi 26 juillet 2005 à 13:58:52 | Re : Fonction ''couper coller" dossiers

malalam

Administrateur CodeS-SourceS
Oui le code est adaptable sans probleme en php4.

mardi 26 juillet 2005 à 14:00:25 | Re : Fonction ''couper coller" dossiers

malalam

Administrateur CodeS-SourceS
Mais le principe est simple...

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

en gros.



mardi 26 juillet 2005 à 14:08:55 | Re : Fonction ''couper coller" dossiers

mictif

Réponse acceptée !
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 :)





mardi 26 juillet 2005 à 14:50:20 | Re : Fonction ''couper coller" dossiers

malalam

Administrateur CodeS-SourceS
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.


Cette discussion est classée dans : fichier, dossier, source, destination, dir


Répondre à ce message

Sujets en rapport avec ce message

easyphp aurait des lacunes ? [ par Teclis01 ] Voila je viens exposer mon petit probleme ...je pensais faire un petit explorateur de fichier pour mon site donc je fais chauffer easyphp et la le dra lister dossiers uniquements [ par shadow1779 ] Bonjour,il existe dans les codes de nombreux scripts pour lister le contenu d'un dossier, cependant cela liste les fichiers et dossier contenu, je vou Listage d'un repertoire / Un truc m'échappe [ par gorbfr ] Bonjour,J'ai ce code qui fonctionne bien :function lire_dossier($dir){  $dossier=opendir($dir);  while($fichier=readdir($dossier))  {    $ignore=array opendir [ par jphilippev ] bonjour j'ai pris un code du manuel php pour ouvrir un dossier (opendir)et en début de boucle il me renvoirfichier : .fichier : ..</font Afficher le nom d'une image en php [ par karim88 ] Bonjour, je débute en php donc merci de votre aide. Voilà, j'aimerai afficher les images d'un dossier (ici photos) mais SURTOUT leur nom de fichier pa script sur les fichiers [ par Buzio ] Bonjour, salut les gars. Je dois realiser un script permettant d'ouvrir un fichier passe en parametre et le sauvegarder e enlevant toutes les caracter Affichage page par page d'un contenu de repertoir [ par fabrice88 ] bonjour, j'ai un repertoire dans lequel se trouve d'autres repertoires. je fait afficher le nom de ces repertoires sur ma page internet mais le proble Probleme FOPEN [ par telechargement111 ] Salut a tousj vous explique mon programe et je vous dis le probleme aprèsjai créer un module d'inscription, et après chaque inscription le module crée Problème de transfert de données via la méthode get [ par ngouss94 ] BONJOUR,Alors, j'ai un petit problème:j'ai créé 2 formulaires, que je souhaite faire communiquer ensemble, c'est a dire, qu'à partir d'un menu déroula Savoir si un champs file est vide [ par dypsis66 ] Bonjour, Pour que l'admin de mon site puisse modifier/ajouter des images sur son site j'ai mis ceci dans mon formulaire: ce que j'aimerai c'est vé


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,874 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales