Copie des fichiers avec les sous repertoire sur disque local

cs_angelx Messages postés 18 Date d'inscription jeudi 19 août 2004 Statut Membre Dernière intervention 2 décembre 2005 - 29 oct. 2004 à 00:05
zouloux Messages postés 14 Date d'inscription jeudi 25 septembre 2003 Statut Membre Dernière intervention 7 juin 2005 - 7 juin 2005 à 19:30
je voudrai copier les fichier d'un repertoire +sous repetoire vers un autre dossier local 'ex c:\temp ver c:\test'

et si possible j'aimerais qu'il ne copier que les extension *.jpg *.bmp *.tif

merci

9 réponses

cs_angelx Messages postés 18 Date d'inscription jeudi 19 août 2004 Statut Membre Dernière intervention 2 décembre 2005
29 oct. 2004 à 09:21
voila j'ai trouver ceci qui fontionne parfaitement
mais j'aimerais il copie seulement les fichier *.jpg, *.bmp *.tif

<?php

$dirPathSource = "c:/temp/"; // change to your Web Home Directory.
$dirPathTarget = "c:/test/"; // edit the root path according to your target Directory.
xcopy($dirPathSource,$dirPathTarget);

function xcopy($dirPathSource,$dirPathTarget)
{
if ($handle = @opendir($dirPathSource))
{ while (false !($dir readdir($handle)))
{
if ($dir != '.' && $dir != '..')
{
$pos = strpos ( $dirPathSource, "/");
$newdir = substr($dirPathSource, $pos);
$pos = strpos ( $newdir, "/");
$newdir = substr($newdir, $pos+1);
$pos = strpos ( $newdir, "/");
$fromDir = $dirPathSource . $dir;
$toDir = $dirPathTarget . $dir;
if (is_dir($fromDir))
{
$mkSuccess = mkdir($toDir);
xcopy($fromDir . '/', $toDir . '/');
}
else
{
copy($fromDir,$toDir);
echo "rn

From: $fromDir rn
TO: $toDir";
}
} // if not . .. close
} // while close
closedir($handle);
} // if handle close
}

?>
0
cs_windu Messages postés 282 Date d'inscription vendredi 16 mai 2003 Statut Membre Dernière intervention 19 juillet 2006
29 oct. 2004 à 11:25
ben pour ne copier que les formats que tu désire il faut que tu vérifie que les 3 (ou 4) dernier caractères dans le nom du fichier correspondent à un format désiré.
Tu dois rajouter ca dans la ligne:
f ($dir != '.' && $dir != '..')

tu peux utiliser ereg ou eregi, ou sinon "casser" le nom de ton fichier en un tableau de 2 cases dont le point d'extension serait le séparateur. Si la case 2 contient bien l'extension alors c'est un fichier à déplacer... (cette tehcnique est peut ete pas la meilleure, remarque!)
Que la Force soit avec toi, Jeune Padawan!!!
0
Naixn Messages postés 455 Date d'inscription mardi 17 septembre 2002 Statut Membre Dernière intervention 22 juillet 2007
29 oct. 2004 à 11:40
Oh c'est sympa comme source ça.
En effet ça copie les dossier et les sous-dossiers.
Bref, ce que tu veux c'est seulement les jpg tif et bmp ?

Je pense que tu peux remplacer ça :

if (is_dir($fromDir))
{
    $mkSuccess = mkdir($toDir);
    xcopy($fromDir . '/', $toDir . '/');
}
else
{
    copy($fromDir,$toDir);
    echo "rn

 From: $fromDir rn
 TO: $toDir";
}


Par :

if (is_dir($fromDir))
{
    $mkSuccess = mkdir($toDir);
    xcopy($fromDir . '/', $toDir . '/');
}
else
{
    $ext = substr(strrchr($dir, '.'), 1 ); // on récupère l'extension    if ($ext 'jpg' || $ext 'bmp' || $ext = 'gif') 
    {
        copy($fromDir,$toDir);
        echo "rn

 From: $fromDir rn
 TO: $toDir";
    }
}


ça devrait marcher ....

Naixn
0
cs_angelx Messages postés 18 Date d'inscription jeudi 19 août 2004 Statut Membre Dernière intervention 2 décembre 2005
29 oct. 2004 à 12:41
ca fonctionne pas il copie toujours tout les fichiers
0

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

Posez votre question
Naixn Messages postés 455 Date d'inscription mardi 17 septembre 2002 Statut Membre Dernière intervention 22 juillet 2007
29 oct. 2004 à 12:47
MERDASSE !!
C'est normal .... je suis con >_<

remplace, dans mon code :
 if ($ext 'jpg' || $ext 'bmp' || $ext = 'gif')


par :

 if ($ext 'jpg' || $ext 'bmp' || $ext= = 'gif')


Désolé pour la bourde u_u

Naixn
0
Naixn Messages postés 455 Date d'inscription mardi 17 septembre 2002 Statut Membre Dernière intervention 22 juillet 2007
29 oct. 2004 à 12:48
niuh décidément j'ai du mal ... excusez moi pas la tête fraiche aujourd'hui :
 if ($ext 'jpg' || $ext 'bmp' || $ext == 'gif')


Naixn
0
cs_angelx Messages postés 18 Date d'inscription jeudi 19 août 2004 Statut Membre Dernière intervention 2 décembre 2005
30 oct. 2004 à 18:39
merci vraiment a tous pour vorte aide

une petit chose qui sreais bien

car pendant le copiage des donne la page reste viege serais t'il possible que ca affiche une message genre "en cours de transfer" ou un gif et quand c'est terminer un autre message aparait

se serais vraiment sympa
0
zouloux Messages postés 14 Date d'inscription jeudi 25 septembre 2003 Statut Membre Dernière intervention 7 juin 2005
7 juin 2005 à 19:28
bha tu met ça dans un fichier (ex copie.php) et a la fin tu met echo "transfert ok !";
et tu fait un fichier main.php contenant echo "Transfert en cours ..."; #include "copie.php";
ou alors à la palce de include (je C pa si ça march) tu met dan ton main.php un bouton, echo "Tranfert en cours ..."; et le bouton tu lui met action="copie.php" voila C pa testé, C pa aprouvé mé essaye on sait jamé ^^ moi je debute en php et je galere un peu je connai ke flash et flashcomserver donc l'histoire du #include, je sais pa si ça march sou php ... bone chance, bye !

..::ZoulouX::..
0
zouloux Messages postés 14 Date d'inscription jeudi 25 septembre 2003 Statut Membre Dernière intervention 7 juin 2005
7 juin 2005 à 19:30
ah oui au fait si ton serveur n'est pas un pI 100mhz (lol) ça devré se faire rapidement ont truk non ?

..::ZoulouX::..
0
Rejoignez-nous