Flux rss
A voir également /bin/sh: g : not found process terminated with status 127 (0 minutes, 0 seconds) 0 errors, 0 warnings /var/empty must be owned by root and not group or world-writable Comment installer g unable to find tk directory or tk package is not tk-dev Directory is not empty. Directoryindex not allowed here Error: unable to find tcl directory or tcl package is not tcl-dev Http error 404 - file or directory not found. Mplayer: could not connect to socket mplayer: no such file or directory Php enlever warning notice Readdir(): supplied argument is not a valid directory resource The sony ericsson amr converter (converter.exe) is not in the same directory as the mobile amr converter. please reinstall the p Warning this motherboard does not support 82w cpu Warning: mail() [function.mail]: "sendmail_from" not set in php.ini or custom "from:" header missing Warning: mail() [function.mail]: "sendmail_from" not set in php.ini or custom "from:" header missing in Warning: mkdir() [function.mkdir]: no such file or directory in Warning: move_uploaded_file [function.move-uploaded-file]: failed to open stream: no such file or directory Warning: mysql_fetch_array(): supplied argument is not a valid mysql result resource in c:\program files\ Warning: mysql_fetch_array(): supplied argument is not a valid mysql result resource in c:\program files\easyphp Warning: mysql_fetch_assoc(): supplied argument is not a valid mysql result Warning: mysql_fetch_object(): supplied argument is not a valid mysql result resource Warning: mysql_fetch_row(): supplied argument is not a valid mysql result resource in /data/ Warning: mysql_numrows(): supplied argument is not a valid mysql result Warning: mysql_result(): supplied argument is not a valid mysql result resource Warning: opendir() [function.opendir]: failed to open dir: not a directory Warning: rpmts_hdrfromfdno: header v3 dsa signature: nokey, key id d66b746e public key for skype-2.0.0.72-fc5.i586.rpm is not Warning: unknown: failed to open stream: no such file or directory in unknown on line 0 fatal error: unknown: failed opening rePlus
Collection CommentCaMarche.net

Warning: rmdir(..): Directory not empty

Publié par kilian, dernière mise à jour le mercredi 9 juillet 2008 à 23:19:59 par kilian


Introduction


Lorsque vous tentez d'effacer un dossier en PHP, il peut arriver que vous rencontriez l'erreur suivante:
Warning: rmdir(..): Directory not empty
Eh oui! Vous ne pouvez pas effacer un répertoire avec rmdir si celui-ci n'est pas vide. Il va donc falloir utiliser une fonction composée par vos soins. L'idéal est d'utiliser une fonction récursive qui entre dans le répertoire, le vide puis l'efface. Le fait que cette fonction soit récursive fera en sorte de se rappeler elle-même dans chaque sous-répertoire et ainsi de suite.

Voici à quoi ce genre de fonction peut ressembler:

Le code de la fonction (compatible PHP 5 ou supérieur)


<?

function rmdir_recursive($dir)
{
	//Liste le contenu du répertoire dans un tableau
	$dir_content = scandir($dir);
	//Est-ce bien un répertoire?
	if($dir_content !== FALSE){
		//Pour chaque entrée du répertoire
		foreach ($dir_content as $entry)
		{
			//Raccourcis symboliques sous Unix, on passe
			if(!in_array($entry, array('.','..'))){
				//On retrouve le chemin par rapport au début
				$entry = $dir . '/' . $entry;
				//Cette entrée n'est pas un dossier: on l'efface
				if(!is_dir($entry)){
					unlink($entry);
				}
				//Cette entrée est un dossier, on recommence sur ce dossier
				else{
					rmdir_recursive($entry);
				}
			}
		}
	}
	//On a bien effacé toutes les entrées du dossier, on peut à présent l'effacer
	rmdir($dir);
}
?>

Exemple pour effacer le répertoire "machin"
@rmdir_recursive('machin');
?>

Mise en garde pour la sécurité


Une petite mise en garde: si cette fonction échoue, comme par exemple dans le cas où vous n'avez pas la permission d'effacer un fichier, vous verrez un message d'erreur sur la page web qui risque de donner des renseignements à l'utilisateur sur le contenu de vos répertoires. C'est pourquoi il est préférable de faire précéder l'appel de cette fonction par un arobase pour ne pas afficher les messages d'erreur.
[mandrake 10.1] la commabnde rmdir (Résolu) Bonjour, Je souhaite utiliser la commande rmdir pour effacer des répertoires en mode texte. Au préalable je me suis loggé en root, mais lorsque je tape rmdir /usr/local/toto par exemple j'ai le message suivant : directory not empty ! Alors... www.commentcamarche.net/forum/affich-2010020-mandrake-10-1-la-commabnde-rmdir
J'ai un Gtk WARNING (Résolu) Bonjour, Je voudrais savoir ce que signifie ces deux lignes qui s'affiche dans mon terminal à chaque exécution de gvim ? (gvim:17925): Gtk-WARNING **: Theme directory scalable/animations/small/16x16 of theme oxygen has no size field (gvim:17925):... www.commentcamarche.net/forum/affich-9246689-j-ai-un-gtk-warning
Error 404 - file or directory not found (Résolu) Bonjour, Je suis windows98 et ie6 et j'ai un problème quand je clique sur certains liens comme celui-ci par exemple : http://agnes.vestris.com/cgi-one/AgnesDirector Je reçois une page blanche avec le message "The page cannot be found" "error 404 ... www.commentcamarche.net/forum/affich-648891-error-404-file-or-directory-not-found
[PHP] Notice: Undefined index:Si vous utilisez les tableaux $_POST ou $_GET pour récupérer les variables de vos formulaires ou autres, il se peut que vous tombiez sur cette erreur: Notice: Undefined index 'champs du tableau' in 'chemin du fichier php en cours d'execution' on line... www.commentcamarche.net/faq/sujet-1391-php-notice-undefined-index
Erreur: xvidcore.dll not foundProblème: Vous avez une erreur "xvidcore.dll not found" lorsque vous essayez de lire une vidéo? Il est très facile et rapide de résoudre ce problème, suivez la résolution ci-dessous. Solution: Rendez-vous sur ce lien: http://www.dll... www.commentcamarche.net/faq/sujet-6153-erreur-xvidcore-dll-not-found
La gestion des notes de fraisGérer les notes de frais avec des outils électroniques Lorsque les équipes d’une entreprise s’agrandissent, la gestion administrative devient plus complexe. Parmi les dossiers, la gestion des notes de frais. Un casse-tête très chronophage que des... www.commentcamarche.net/faq/sujet-9732-la-gestion-des-notes-de-frais
Impossible de supprimer un fichier sur FTP (Résolu)Bonjour à tous, Je voulais tester le ftp de free pour monter un ptit site web, état novice j'ai décidé de réaliser des tests. Pour cela, j'ai eu la mauvaise idée de poser le premier fichier que j'ai trouvé sans réfléchir, suite auxquel... www.commentcamarche.net/forum/affich-3454747-impossible-de-supprimer-un-fichier-sur-ftp
PHP. erreur de fichier: "Warning: fopen(./mes (Résolu)salut, je suis un néophyte en PHP mais j'ai fait un programme de formulaire qui sauve les données dans un fichier sur le disque du serveur. En local sur mon pc, tout marche impeccablement sans erreur tandis que sur le serveur j'ai plusieurs... www.commentcamarche.net/forum/affich-2066356-php-erreur-de-fichier-warning-fopen-mes
[PHP/MYSQL]Warning: mysql_fetch_row(): suppli (Résolu)Bonjour, Voila je comprend pas pourquoi j'obtient cette avertissement: Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in C:\Program Files\EasyPHP 2.0b1\www\op\ent2.php on line 19 J'ai vérifier sous... www.commentcamarche.net/forum/affich-7083806-php-mysql-warning-mysql-fetch-row-suppli
Télécharger Notepad++Notepad + + est un éditeur de code source, qui supporte plusieurs langages de programmation: Ce projet, fondé sur la composante Scintilla (un très puissant éditeur de composant), écrit en C + + pur avec win32 api et STL (qui assure la plus grande... www.commentcamarche.net/telecharger/telecharger-34055333-notepad
Télécharger Finale NotePadFinale Notepad est votre invitation d'entré dans le monde la notation musicale. Le programme supporte les fichiers MIDI en incluant la possibilité d'importer et d'exporter des fichiers MIDI. Obtenez les notes de musique correspondant à la touche du... www.commentcamarche.net/telecharger/telecharger-34056080-finale-notepad
Télécharger Mega Bloc NotesMega Bloc Notes est un éditeur de texte (TXT/RTF/XLS/DOC/MCW/HTM...) possédant une multitudes de fonctions originales telles que : la synthèse vocale, un compagnon (compatible office), etc. Il est destiné à remplacer Notepad et WordPad... www.commentcamarche.net/telecharger/telecharger-3673517-mega-bloc-notes
Active Directory et le DNSNotion d'espace de nom Active Directory constitue un espace de nom homogène, c'est-à-dire que toute ressource peut être identifiée de façon unique. DN RDN Plus d'informations Vue d'ensemble de Active Directory Architecture Active Directory www.commentcamarche.net/contents/activedirectory/adnom.php3
Principes d'Active DirectoryPrincipe de fonctionnement d'Active Directory Active Directory permet de représenter et de stocker les éléments constitutifs du réseau (les ressources informatiques mais également les utilisateurs) sous formes d'objets, c'est-à-dire un ensemble... www.commentcamarche.net/contents/activedirectory/active-directory-principes.php3
Active DirectoryPrésentation de Active Directory Active Directory est le nom du service d'annuaire de Microsoft apparu dans le système d'exploitation Microsoft Windows Server 2000. Le service d'annuaire Active Directory est basé sur les standards TCP/IP : DNS,... www.commentcamarche.net/contents/activedirectory/active-directory-intro.php3