web-dev-qa-db-fra.com

Windows impossible à supprimer ._. Fichier

J'ai actuellement un fichier à la racine de mon disque dur externe simplement appelé ._., qui, je suppose, a été ajouté à mon disque dur après l'avoir utilisé sur mon MacBook il y a quelque temps. J'essaie de supprimer ce fichier sur ma machine Windows 10; cependant, Windows continue à affirmer que le fichier est introuvable.

Error message from Windows Explorer

J'ai également essayé de supprimer le fichier via une invite de commande élevée; Cependant, le même message est renvoyé.

Error message from elevated command Prompt

Est-il possible de supprimer ce fichier de mon disque dur via Windows?

90
Mike Koch

Exécutez la commande suivante (vous pourriez avoir besoin de privilèges élevés/de la commande open en tant qu'administrateur):

del "\\?\F:\._."

À propos du préfixe \\?\ :

Pour les E/S sur fichier, le préfixe "\\?\" d'une chaîne de chemin indique aux API Windows de désactiver tout traitement de chaîne et d'envoyer la chaîne qui le suit directement au système de fichiers.

...

Comme il désactive le développement automatique de la chaîne de chemin, le préfixe "\\?\" autorise également l'utilisation de ".." et "." dans les noms de chemin, ce qui peut être utile si vous essayez d'effectuer des opérations sur un fichier avec ces noms les spécificateurs de chemin relatif réservés faisant partie du chemin qualifié complet.

Notez que vous ne pouvez pas utiliser le préfixe "\\?\" avec un chemin relatif.

Exemple :

==> set prog>"\\?\D:\bat\Unusual Names\._."

==> dir "D:\bat\Unusual Names\*"|find "._."
08.11.2015  13:25               132 ._.

==> type "D:\bat\Unusual Names\._."
The system cannot find the file specified.

==> type "\\?\D:\bat\Unusual Names\._."
ProgramData=C:\ProgramData
ProgramFiles=C:\Program Files
ProgramFiles(x86)=C:\Program Files (x86)
ProgramW6432=C:\Program Files

==> del "D:\bat\Unusual Names\._."
Could Not Find D:\bat\Unusual Names\._.

==> del "\\?\D:\bat\Unusual Names\._."

==> dir "D:\bat\Unusual Names\*"|find "._."

==>
146
JosefZ

Même si la question a déjà été résolue, j'aimerais quand même proposer une solution alternative: utiliser les anciens "noms abrégés" (que vous pouvez afficher avec l'option "/ x" de la commande dir) peut également vous permettre de: maîtrisez les fichiers avec des noms "funky" que vous ne pouvez pas gérer autrement:

C:\temp\test>dir
 Volume in drive C has no label.
 Volume Serial Number is 887A-5E48

 Directory of C:\temp\test

11.11.2015  16:31    <DIR>          .
11.11.2015  16:31    <DIR>          ..
11.11.2015  16:31                 7 ._.
               1 File(s)              7 bytes
               2 Dir(s)  44.966.129.664 bytes free

C:\temp\test>dir /x
 Volume in drive C has no label.
 Volume Serial Number is 887A-5E48

 Directory of C:\temp\test

11.11.2015  16:31    <DIR>                       .
11.11.2015  16:31    <DIR>                       ..
11.11.2015  16:31                 7 _3E35~1      ._.
               1 File(s)              7 bytes
               2 Dir(s)  44.966.129.664 bytes free

C:\temp\test>del _3e35~1

C:\temp\test>dir
 Volume in drive C has no label.
 Volume Serial Number is 887A-5E48

 Directory of C:\temp\test

11.11.2015  16:31    <DIR>          .
11.11.2015  16:31    <DIR>          ..
               0 File(s)              0 bytes
               2 Dir(s)  44.966.129.664 bytes free
24
Guest

Installez 7-Zip , ouvrez-le et utilisez son menu Fichier pour renommer le fichier en un nom normal (par exemple, aaa), puis supprimez-le. . Trouvé à ce post.

J'ai testé cela sur Windows XP s'exécutant sur une machine virtuelle. J'ai utilisé Linux pour créer un fichier appelé ._. sur un répertoire partagé.

20
NZD