Problème avec la fonction is_dir()
Bonjour,
Je suis en train de tester une fonction qui permet de copier un répertoire ainsi que ses sous-dossiers dans un autre répertoire. Le problème est que je ne réussi pas à passer la première condition de ma fonction. Pourtant pour moi, la destination est correcte quand je fait un echo pour afficher le résultat de $dest_new_dossier et de $dest_old_dossier. Il me dit que le paramètre de is_dir est pas valide pour lui. Donc ça ne passe pas à la suite donc impossible de copier les fichiers dans le répertoire.
Donc comment faire pour rendre $dest_new_dossier et de $dest_old_dossier valides pour is_dir() car je bute dessus.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
|
$dest_new_dossier='J:\\test\\'.$_SESSION['unite'].'\\'.$_SESSION['equipement'].' (Numero '.$_POST['valeurid'].')\\';
$dest_old_dossier='J:\\test\\'.$_SESSION['temp1'].'\\'.$_SESSION['temp2'].' (Numero '.$_POST['valeurid'].')\\';
copy_dir($dest_old_dossier,$dest_new_dossier);
function copy_dir ($dir2copy,$dir_paste) {
// On vérifie si $dir2copy est un dossier
if (is_dir($dir2copy)) {
echo "C EST BIEN UN DOSSIER<BR>";
// Si oui, on l'ouvre
if ($dh = opendir($dir2copy))
{
echo "DOSSIER OUVERT<BR>";
// On liste les dossiers et fichiers de $dir2copy
while (($file = readdir($dh)) !== false)
{
// Si le dossier dans lequel on veut coller n'existe pas, on le créé
if (!is_dir($dir_paste)) mkdir ($dir_paste, 0777,TRUE);
{
echo "CREATION DOSSIER";
}
// S'il s'agit d'un dossier, on relance la fonction récursive
if(is_dir($dir2copy.$file) && $file != '..' && $file != '.')
{
copy_dir ( $dir2copy.$file.'/' , $dir_paste.$file.'/' );
echo "COPIE DOSSIER";
}
// S'il sagit d'un fichier, on le copue simplement
elseif($file != '..' && $file != '.')
{
copy ( $dir2copy.$file , $dir_paste.$file );
echo "COPIE FICHIER SIMPLE";
}
}
// On ferme $dir2copy
closedir($dh);
}
}
} |