A voir également:
- Fonction capricieuse
- Fonction si et - Guide
- Fonction moyenne excel - Guide
- Fonction somme excel - Guide
- Fonction remplacer word - Guide
- Excel renvoyer la valeur d'une cellule en fonction d'une autre - Forum Logiciels
1 réponse
KX
Messages postés
16752
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
31 août 2024
3 019
6 août 2016 à 12:55
6 août 2016 à 12:55
Bonjour,
Je suis un peu rouillé en C++ mais je ne comprends pas ceci :
Pourquoi faire un
De plus je pense qu'il faudrait que tu fasses le
Je n'ai pas testé :
Je suis un peu rouillé en C++ mais je ne comprends pas ceci :
if (isDir(file->d_name) == false && rmdir(file->d_name) == -1) DeleteFolder(PathBuild(path, file->d_name));
Pourquoi faire un
rmdiret un
DeleteFoldersi
isDirrenvoie false ?
De plus je pense qu'il faudrait que tu fasses le
rmdiraprès avoir supprimé tout les
opendiren cours, c'est à dire après la boucle, pas pendant.
Je n'ai pas testé :
void Para::DeleteFolder(std::string path) { DIR* rep = opendir(path.c_str()); if (!rep) error(3); struct dirent* file = NULL; while ((file = readdir(rep)) != NULL) { if (strcmp(file->d_name, "..") == 0 || strcmp(file->d_name, ".") == 0) continue; if (isDir(file->d_name)) DeleteFolder(PathBuild(path, file->d_name)); else if (remove(file->d_name) == -1) error(14); } if (closedir(rep) == -1) error(4); if (rmdir(rep) == -1) error(?); }
Modifié par astrocurieux le 6/08/2016 à 16:26
la fonction que tu ma fait me semble pas mal, sauf sur un point.
mon dossier contient des sous dossier que je veut également voir disparaître.
si je suis ta logique seul le dossier qui contient l’ensemble va subir une tentative de suppression, qui normalement devrais échouer étant donner que ce dossier "qui contient encore d'autre dossier" n'est pas vide .
et la est mon problème justement ...
sauf si tu me dit que le compilo ne considère pas un dossier comme du contenue, et que si tout ses dernier ne stocke plus de fichiers le dossier mère peut être supprimé sans problème. mais j'en doute .
Modifié par KX le 6/08/2016 à 17:21
Non, car on appelle récursivement DeleteFolder dans ce if (ce qui était déjà le cas dans ton code), donc on va d'abord supprimer les sous-dossier avant de continuer la suppression du répertoire en cours, que l'on ne supprime qu'à la fin, lorsqu'il est complètement vide (sauf erreur de suppression avant).
6 août 2016 à 17:55
je teste cela de suite.
6 août 2016 à 18:32