web-dev-qa-db-fra.com

Impossible de supprimer un dossier corrompu dans Windows 10

Aujourd'hui, lorsque j'essayais de décompiler le fichier .apk à l'aide de WinRar, j'ai eu une erreur et un décompte terminé. Après cela, lorsque j'essaie de supprimer le dossier, je reçois une erreur que je n'ai pas de propriété du dossier, même si je fournis la permission de l'administrateur.

Error shown while deleting the folder

Image from file Explorer of the folder which has a file

Le dossier de fichier et parent du fichier dans l'image donne une erreur lorsque j'essaie de la supprimer.

Ensuite, j'ai essayé de faire la même chose avec cmd en mode administrateur par une commande:

test de RM -D

sortie :: RM: impossible à dissuader `test ': non propriétaire

J'ai également essayé la commande suivante pour supprimer récursivement des fichiers dans un dossier:

test de RM -R

sortie: RM: Avertissement: structure de répertoire circulaire. Cela signifie presque certainement que vous avez un système de fichiers corrompu. Avertissez votre gestionnaire de système. Les deux annuaires suivants ont le même numéro d'inode:

testez `test/'

J'ai donc essayé la commande suivante pour supprimer une structure de fichiers récursif,

rM -RFD Test

sortie: RM: ne peut pas dissimuler `test ': pas le propriétaire

Toutes les méthodes ci-dessus que j'ai utilisées sont soit à partir de la page Stackoverflow ou Microsoft QNA, mais rien ne semble fonctionner.

J'ai essayé tout cela en mode sans échec aussi. Mais toujours, j'ai la même erreur. Deux fois j'ai aussi eu une erreur avec un code d'erreur de 0x80070091

Image showing permissions in the security tab of properties window of the folder to be deleted

J'ai déjà essayé de prendre la propriété du dossier à l'aide de commander en vente libre.

test en vente/f/r

Production:

Succès: le fichier (ou le dossier): "C:\users\users\Mandar\Desktop\test" désormais appartenant à l'utilisateur "mandar_sadye\mandar".

Succès: le fichier (ou le dossier): "C:\utilisateurs\users\Mandar\Desktop\Test \" appartenant maintenant à l'utilisateur "mandar_sadye\mandar".

J'ai essayé toutes les solutions possibles que je pouvais trouver, mais rien ne semble fonctionner. Si quelqu'un a une suggestion concernant ce problème, veuillez le poster comme réponse ou commenter comme vous le voyez. Merci en avance.

5
Mandar Sadye

Votre problème est que vous avez une entrée de système de fichiers avec un nom contenant uniquement un espace (test\, notez l'espace après la barre oblique inverse). Ceci est techniquement possible dans NTFS, mais n'est pas du tout autorisé dans Win32 et la plupart des API Windows ne le géreront pas du tout. Ils essaieront de dépouiller les espaces des extrémités du nom du fichier, puis de devenir très confus lorsque le nom de fichier n'est plus là et peut le traiter comme si vous vous référez au répertoire; Cela se produit même si vous utilisez un format comme test\* ou alors " ".

Il y a deux façons de sortir dans les fenêtres elles-mêmes.

  1. Contourner la traduction du chemin Win32. Ceci est fait en préfixant un chemin parfaitement qualifié avec \\?\. Faire cela désactive toutes les règles Win32 sur ce qui est un nom de fichier valide (tel que "ne peut pas commencer ou se terminer par un espace"), laissant uniquement l'ensemble beaucoup plus restrictif de règles NTFS (ne peut pas contenir de \ ou alors :, par exemple). Notez qu'il désactive également des abréaux pratiques comme en utilisant des chemins relatifs; Si vous souhaitez faire cela, vous devez fournir un chemin absolu (C:\users\users\user\user\test\\) et vous devrez le citer afin que la ligne de commande sait que vous vouliez inclure cet espace final: del "\\?\C:\Users\mandar\Desktop\test\ " (et oui, vous devriez utiliser cmd.exe pour ça; PowerShell ignore les coquilles \?\\\\ Et Unix-like-like fonctionnant sous Windows via Mingw ou Cygwin n'utilise pas les chemins du format que le noyau attend).
  2. Utilisez le sous-système Native Linux sous Windows (qui exécute des fichiers binaires Linux non modifiés directement sur le noyau NT, via un pilote spécial). Linux (comme vous l'avez trouvé) prend en charge traiter des fichiers qui ont des noms stupides comme et le SMSL WSL, le sous-système Windows pour Linux. Si vous n'avez pas utilisé WSL avant, vous devrez installer une distribution Linux à partir de Windows App Store ( bunt et openseuse sont disponibles et conviennent à une utilisation générale, kali est également disponible si vous souhaitez une distribution spéciale sur votre boîte Windows; vous pouvez installer plusieurs personnes si vous le souhaitez). De l'intérieur bash (ou autre shell) d'une distribution WSL, accédez au répertoire correspondant (cd /mnt/c/Users/mandar/Desktop/test) puis supprimer le fichier incriminé (rm ' ') ou simplement tout le répertoire.
5
CBHacking

Exécutez la commande chkdsk et voyez s'il trouve des erreurs.

Pour plus de comprendre les erreurs, il est possible de Lire la visionneuse d'événements de Connexion CHKDSK dans Windows 1 .

Si des erreurs sont trouvées, et si elles ne semblent pas trop menaçantes ou si elles sont trop nombreuses, pour résoudre les erreurs exécutez la commande:

chkdsk /f

Assurez-vous d'avoir une bonne sauvegarde de vos fichiers avant de commencer.

0
harrymc