Accueil » Blog » Informatique » Windows » Erreur 0x80070091 : le dossier n’est pas vide

Erreur 0x80070091 : le dossier n’est pas vide

« Le dossier n’est pas vide » alors que l’Explorateur l’affiche vide : l’erreur 0x80070091 vient presque toujours d’entrées de répertoire que NTFS considère encore comme occupées, soit par un processus qui tient un fichier ouvert, soit par une structure abîmée. La combinaison qui règle le cas dans la majorité des situations est chkdsk sur le volume concerné, puis la suppression depuis le mode sans échec.

Points clés

  • 0x80070091 est la traduction en HRESULT du code Win32 145, soit ERROR_DIR_NOT_EMPTY, « le répertoire n’est pas vide ».
  • Trois contextes dominent : le dossier WindowsApps, les dossiers synchronisés par OneDrive, et les disques externes en NTFS.
  • L’erreur apparaît aussi lors d’une restauration système, avec la mention Source : AppxStaging.
  • Un chkdsk /f répare les entrées de répertoire incohérentes dans la plupart des cas simples.
  • La prise de possession du dossier est un dernier recours, pas une première étape, surtout sur WindowsApps.

Ce que dit exactement le code

Le préfixe 0x8007 indique un code Win32 converti en HRESULT : Microsoft documente cette conversion sous la forme 0x8007XXXX, où XXXX reprend les deux premiers octets de la valeur Win32. Ici, 0x0091 vaut 145 en décimal, et la liste officielle des codes d’erreur système donne pour 145 : ERROR_DIR_NOT_EMPTY, le répertoire n’est pas vide.

Ce n’est donc pas un refus d’accès, contrairement à l’erreur 0x80070005 qui, elle, signale un accès refusé. Windows dit qu’il a essayé de supprimer un répertoire et qu’il l’a trouvé non vide au moment de l’opération. Deux explications sont possibles, et elles n’appellent pas les mêmes gestes : le dossier contient réellement quelque chose que l’Explorateur ne montre pas, ou la table de répertoire de NTFS contient des entrées qui ne correspondent plus à des fichiers réels.

Tableau associant chaque contexte d apparition de l erreur 0x80070091 a sa cause probable et a une premiere action
Le contexte d’apparition désigne la manipulation à faire avant toute prise de possession.

Les quatre situations où le code apparaît

Le dossier WindowsApps

Situé dans C:\Program Files\WindowsApps, il héberge les applications du Microsoft Store. Ses permissions sont volontairement très restrictives et son propriétaire est le compte NT Service\TrustedInstaller. Quand un jeu ou une application du Store a été installé sur un autre volume, un dossier WindowsApps apparaît aussi à la racine de ce disque, et c’est celui-là qui résiste à la suppression.

A lire  Bluetooth qui ne fonctionne plus sous Windows 11 : les solutions

Une restauration système qui échoue

Le message complet indique alors que la restauration a échoué pendant la restauration du répertoire depuis le point de restauration, avec Source : AppxStaging et Destination : %ProgramFiles%\WindowsApps. Le point de restauration lui-même est intact : c’est l’écriture dans WindowsApps qui bloque.

Les dossiers OneDrive

Sur un dossier synchronisé, des fichiers en ligne uniquement ou des fichiers en cours de synchronisation restent référencés dans le répertoire sans être présents localement. Suspendre la synchronisation avant l’opération suffit souvent.

Les disques externes

Sur un disque USB ou une carte, l’éjection à chaud pendant une écriture laisse des entrées de répertoire orphelines. Le dossier apparaît vide, mais NTFS le sait non vide. Si le disque n’est même plus reconnu, le problème est ailleurs, et notre article sur le disque dur externe non reconnu traite ce cas.

Les solutions, de la moins risquée à la plus lourde

1. Fermer ce qui tient le dossier

Fermez l’Explorateur ouvert sur le dossier ou sur un sous-dossier, les logiciels qui y ont travaillé, l’antivirus tiers en analyse, et les clients de synchronisation. Redémarrez, puis réessayez avant toute autre manipulation. Un redémarrage règle une part non négligeable des cas parce qu’il libère les verrous de fichiers.

2. Afficher les éléments cachés

Onglet Affichage de l’Explorateur, puis Éléments masqués. Décochez ensuite « Masquer les fichiers protégés du système d’exploitation » dans les options des dossiers. Un desktop.ini, un fichier de vignettes ou un dossier de métadonnées suffit à rendre le répertoire non vide. En ligne de commande, dir /a à la racine du dossier liste tout, y compris ce que l’interface cache.

3. Supprimer en ligne de commande

Une invite de commandes en administrateur, puis rmdir /s /q "D:\chemin\du\dossier". La commande remonte les fichiers qu’elle n’arrive pas à traiter et le motif exact : fichier introuvable, ou fichier utilisé par un autre processus. Cette liste est le meilleur indice disponible sur la nature du blocage.

4. Passer chkdsk sur le volume

C’est l’étape qui règle le plus de cas, parce qu’elle s’attaque à la cause structurelle. chkdsk D: /f corrige les erreurs du système de fichiers, y compris les entrées de répertoire incohérentes. Microsoft précise que sans paramètre, la commande ne fait qu’afficher l’état du volume sans rien réparer, et que /f exige de verrouiller le disque : sur le volume système, la vérification est reportée au redémarrage suivant. Ajoutez /r seulement si vous soupçonnez des secteurs défectueux, car l’opération devient très longue. Les options et les cas où la commande fait plus de mal que de bien sont détaillés dans notre article sur la commande chkdsk.

A lire  Erreur Windows code 80072efe : Les solutions

5. Réessayer depuis le mode sans échec

Le mode sans échec démarre Windows avec un jeu limité de fichiers et de pilotes, ce qui écarte les antivirus tiers, les clients de synchronisation et les services de constructeur. Via msconfig, onglet Démarrer, case Démarrage sécurisé en mode Minimal, puis redémarrage. La suppression réussit fréquemment là où elle échouait en session normale. N’oubliez pas de décocher la case ensuite.

6. Renommer plutôt que supprimer

Pour débloquer une restauration système, la manipulation documentée par de nombreux retours consiste à renommer le dossier au lieu de le détruire, depuis l’invite de commandes de l’environnement de récupération : attrib WindowsApps -h pour retirer l’attribut caché, puis rename WindowsApps WindowsApps.old. La restauration recrée ensuite son propre dossier. Cette voie évite de toucher aux permissions.

7. La prise de possession, en dernier

Sur un dossier WindowsApps d’un disque secondaire, une invite en administrateur permet takeown /f "D:\WindowsApps" /r /d y puis icacls "D:\WindowsApps" /grant Administrateurs:F /t. Microsoft décrit takeown comme le moyen pour un administrateur de récupérer l’accès à un fichier qui lui était refusé, et icacls gère les listes de contrôle d’accès.

Le risque est réel sur le WindowsApps du disque système : ce dossier n’hérite d’aucune permission de son parent et contient des entrées de contrôle d’accès conditionnelles. Un icacls /reset /t dessus ne restaure pas les permissions d’origine, il applique celles du parent, et des applications du Store cessent de fonctionner. Sur le volume système, ne prenez pas possession de WindowsApps : préférez la désinstallation propre des applications par les Paramètres, ou le changement d’emplacement d’installation par défaut.

Schema en sept etapes de resolution de l erreur 0x80070091, du redemarrage simple a la prise de possession du dossier
La prise de possession arrive en septième position, jamais en première.

Vérifier les autorisations depuis l’Explorateur

Avant toute réparation en ligne de commande, un contrôle rapide s’impose. Clic droit sur le dossier, Propriétés, onglet Sécurité : la fenêtre liste les utilisateurs et les autorisations en vigueur. Le bouton Avancé, en haut de cette fenêtre, affiche le propriétaire réel et les entrées héritées. Si votre compte n’apparaît nulle part avec un droit de modification, l’échec n’a rien à voir avec un répertoire occupé.

Deux options du menu Avancé méritent l’attention. La case Remplacer toutes les entrées d’autorisation des objets enfants applique la liste courante à tout l’arbre. Le lien Modifier, à côté du propriétaire, permet de reprendre la propriété sans passer par la ligne de commande. Sur des fichiers système abîmés, la réparation passe plutôt par sfc /scannow, décrite dans notre article dédié à cette commande, puis par un redémarrage.

A lire  Réinitialiser la pile réseau Windows (netsh winsock reset)

Le cas de la mise à niveau vers Windows 11

Le code apparaît parfois pendant une mise à niveau, au moment où le programme d’installation déplace des répertoires. Le schéma est le même : un dossier attendu vide contient encore des entrées. Les pistes utiles sont, dans l’ordre, la suspension de OneDrive, le passage de chkdsk /f sur le volume système, et la vérification qu’aucun dossier WindowsApps ne traîne à la racine d’un disque secondaire. Si l’installation échoue avec un autre code, la famille des blocages de mise à niveau est couverte par notre article sur l’erreur 0xc1900101.

Le dossier Windows.old laissé par une mise à niveau se supprime, lui, par le nettoyage de disque et non à la main. La méthode propre est décrite dans notre article sur la suppression des fichiers temporaires de Windows 11.

Quand ça ne vient pas de là

Trois cas sortent du schéma habituel.

Un chemin trop long. Au-delà de la limite historique de 260 caractères, certaines API échouent sur des messages trompeurs. Renommez les dossiers parents pour raccourcir le chemin, ou montez le dossier profond sur une lettre de lecteur avec subst, puis supprimez depuis cette racine.

Un support en lecture seule. Une carte SD avec le loquet de protection actif, ou un volume marqué en lecture seule, produit des refus dont le message ne correspond pas à la cause. diskpart, puis attributes disk, indique l’état réel.

Un disque en fin de vie. Si chkdsk /r rapporte des secteurs défectueux et que les erreurs revenaient déjà avant, l’opération à faire n’est pas la suppression du dossier mais la sauvegarde du contenu. Les journaux de disque se lisent dans le journal Système de l’Observateur d’événements.

Questions fréquentes

Un logiciel de suppression forcée est-il utile ?

Rarement, et il masque le diagnostic. Si le blocage vient d’une incohérence NTFS, un utilitaire qui force la suppression laisse le volume dans le même état incohérent. chkdsk traite la cause, pas le symptôme.

Faut-il formater le disque externe ?

Seulement après avoir sauvegardé les données et après l’échec de chkdsk /f. Un formatage règle toutes les incohérences de répertoire, mais c’est une mesure destructive qui n’apprend rien sur l’état physique du support.

Pourquoi le dossier réapparaît-il après suppression ?

Parce qu’un service le recrée. C’est typique de WindowsApps sur un disque où le Store installe encore des applications, et des dossiers de cache d’un logiciel toujours lancé au démarrage. Changez l’emplacement d’installation avant de supprimer.

Le mode sans échec efface-t-il quelque chose ?

Non. Il démarre Windows avec un jeu réduit de pilotes et de services, sans toucher aux données ni aux logiciels installés.

Le code 0x80070091 concerne-t-il aussi les sauvegardes ?

Oui, il apparaît dans des échecs de sauvegarde et de synchronisation, avec la même signification : une opération de répertoire a trouvé une cible non vide. Le traitement reste identique, vérification du système de fichiers puis reprise hors session normale.

Photo d’en-tête : disque dur externe USB, par Evan-Amos, domaine public, via Wikimedia Commons. La photo illustre le support le plus souvent concerné, elle ne montre pas le message d’erreur lui-même.
Sources : Microsoft Learn, codes d’erreur système 0 à 499 ; Microsoft Learn, conversion Win32 vers HRESULT ; Microsoft Learn, chkdsk ; Microsoft Learn, takeown ; Microsoft Learn, icacls ; Microsoft Support, paramètres de démarrage de Windows.

Laisser un commentaire

Pin It on Pinterest