Accueil > Forum > > > > déplacer des fichiers et supprimer des dossiers
déplacer des fichiers et supprimer des dossiers
lundi 9 juillet 2007 à 13:45:04 |
déplacer des fichiers et supprimer des dossiers

zut69
|
Bonjour,
Voilà j'ai un dossier photos avec pleins d'images, cependant je voudrais que mon code ouvre tous les sous-dossiers de "photos", ainsi que leurs sous-dossiers, sous-sous-dossiers, ... et que dès qu'il rencontre un fichier, il le déplace à la racine du dossier photo, pour finalement supprimer tous ces dossiers et sous-dossiers. NB: le seul dossier qu'il ne doit pas traiter s'appelle "miniatures".
avant le script:
photos -> miniatures -> mini_1.jpg mini_2.jpg vacances - > sous_dossier -> ma_photo.png photo.jpg john.jpg kevin.jpg etc... après:
photos -> miniatures -> mini_1.jpg
mini_2.jpg
john.jpg kevin.jpg ma_photo.png
photo.jpg
donc voilà, pour cela j'ai écrit le script suivant, il ne marche pas, ca a visiblement l'air d'etre un problème de chemin des répertoires. Voici le code, j'ai tout essayé pour le corriger j'espere que qqn pourra m'aider:
function detect_dir($rep) { $dir = opendir($rep); while($f = readdir($dir)) { $rep = $rep."/".$f; if(is_dir($f)) { if($f != "." && $f != "..") { detect_dir($rep); rmdir($rep); } } elseif(is_file($rep.$f)) { copy($rep,$url."/clients/".the_path.$f); unlink($rep); } } closedir($dir); }
$the_path = "photos/"; $dir = opendir($the_path); while($f = readdir($dir)) { if(is_dir($the_path.$f) && $f != "miniatures" && $f != "." && $f != "..") { detect_dir($the_path.$f); rmdir($the_path.$f); } } closedir($dir);
|
En fait dans la partie verte, je liste le contenu du dossier photo, s'il trouve un dossier il le soumet à la fonction en bleu et ensuite le supprime. Ma fonction liste le dossier, s'il trouve un autre dossier elle se relance elle-même mais en soumettant le nouveau répertoire, sinon si c est un fichier, il en fait une copie dans le dossier photo et ensuite le supprime (en gros il le déplace). Le principe a l'air bon, ca devrait marcher ! J'ai vraiment besoin d'aide, merci d'avance à tous, FF
|
|
|
lundi 9 juillet 2007 à 15:33:32 |
Re : déplacer des fichiers et supprimer des dossiers

Kysic
|
Salut, il y a un problème vous faîtes: $rep = $rep."/".$f; puis elseif(is_file($rep.$f)) donc quand vous testez si c'est un fichier vous testez $rep."/".$f.$f au lieu de $rep."/".$f. de plus vous testez également if(is_dir($f)) au lieu de if(is_dir($rep) (ou if(is_dir($rep."/".$f) )(Rq : on peut aussi déplacer un fichier en le renommant plutôt quand le copiant puis supprimant).
[ Lien ]
|
|
lundi 9 juillet 2007 à 17:03:58 |
Re : déplacer des fichiers et supprimer des dossiers

zut69
|
Merci beaucoup, en corrigeant ces erreurs, ainsi que quelques autres que j'ai trouvé et ben ça marche !
Voici mon code qui marche déjà bien mieux au cas ou ca intéresserait quelqu'un:
function detect_dir($rep) { $dir = opendir($rep); while($f = readdir($dir)) { if(is_dir($rep."/".$f) && $f != "." && $f != "..") { detect_dir($rep."/".$f); rmdir($rep."/".$f); } elseif(is_file($rep."/".$f)) { if($f != "Thumbs.db") copy($rep."/".$f,"photos/".$f); unlink($rep."/".$f); } } closedir($dir); }
$the_path = "photos/"; $dir = opendir($the_path); while($f = readdir($dir)) { if(is_dir($the_path.$f) && $f != "miniatures" && $f != "." && $f != "..") { detect_dir($the_path.$f); rmdir($the_path.$f); } } closedir($dir);
|
|
|
lundi 9 juillet 2007 à 18:40:42 |
Re : déplacer des fichiers et supprimer des dossiers

malalam
|
Hello,
et en PHP5, un exemple à la va vite :
<?php function moveAllTo ($sStart, $sTo) { if (!is_dir ($sStart)) { throw new Exception ($sStart.' is not a valid source directory'); } if (!is_dir ($sTo)) { throw new Exception ($sTo.' is not a valid target directory'); } $itDir = new RecursiveIteratorIterator (new RecursiveDirectoryIterator($sStart, RecursiveDirectoryIterator::CURRENT_AS_FILEINFO), RecursiveIteratorIterator::SELF_FIRST); while (true === $itDir -> valid ()) { if (false === $itDir -> isDot () && $itDir -> isFile()) { $sCur = $itDir -> current (); $sNew = $sTo.'/'.basename ($sCur); echo 'renaming ', $sCur, ' to ', $sNew, '<br />'; rename ($sCur, $sNew); } $itDir -> next (); } }
moveAllTo ('bli', '.'); ?>
|
|
Cette discussion est classée dans : dossiers, dossier, rep, jpg, dir
Répondre à ce message
Sujets en rapport avec ce message
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
afficher les images d'un dossier scanné [ par TrX ]
Boujourle fichier php est a la racine du site et les .jpg son dans le dossier photos.$dir = "photos"; // Ouvre un dossier bien connu, et liste tous
PHP Afficher le contenu d'un dossier et de ses sous-dossiers [ par jibtothenight ]
Bonjour, avec ce code j'arrive à afficher le contenu de mon dossier :$dir = opendir('intranet/image_hd/'); while($file = readdir($dir)) { echo "<a hre
affichage liste dossiers par ordre ALPHABETIQUE [ par mailliam ]
Ello tous! Voilà moi je me sers du code suivant pour lister les dossiers d'un répertoire sur mon serveur. Seulement ils ne s'affiche pas par ordre al
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
Convertisseur JPG en PNG [ par VestaX ]
Salut à tous, Je suis en train de dévlopper un petit morceau de code qui permet de convertir un JPG en PNG. Donc, le fichier est déposé sur le serve
Trier mon tableau ... [ par florent73 ]
Bonjour, j'ai un code qui affiche la liste des fichiers dans les répertoires et sous-répertoires, et j'aimerai trier cette liste en fonction de la dat
Probleme de Permission [ par g_fuck ]
salut !Il y a de cela 3 mois je fesais face a un probleme de permission(acces) dans l'entierte d'un de mes dossiers !dossiers qui stockait tous fichie
suppresion de dossier recursif [ par pioug43 ]
Bonjour, Je cherche un bout de code qui me permettrait de supprimer completment un dossier qui peut contenir indifferement plusieurs sous dossiers et
PréChargement de sources et img [ par sambucus ]
Bonjour,Voici ce bout de code qui appelle à distance un php (2ème ligne) :include 'preload.php';include 'http://le.scenariste.free.fr/modules/myagmi/
Livres en rapport
|
Derniers Blogs
POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|