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 : Sélectionner tout - Visualiser dans une fenêtre à part
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); } } }
Partager