Windows impossible à supprimer ._. Fichier

91

J'ai actuellement un fichier à la racine de mon disque dur externe simplement nommé ._., 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.

Message d'erreur de l'explorateur Windows

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

Message d'erreur de l'invite de commande élevée

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

Mike Koch
la source
7
@ rr- la misère que vous pouvez faire avec les noms de fichiers Unix a tendance à être bien plus grande. : 3
Martijn
5
Votre invite de commande indique quelque chose d'étrange. Vous avez find "._."laissé de côté les citations del ._.. Avez-vous essayé del "._."?
jpmc26
1
phénomène intéressant. surtout combien il est difficile de supprimer. Êtes-vous sûr que le fichier a été légitimement créé? (le nom de cela semble assez étrange, même pour un mac)
Thomas
30
Ma partie préférée est l'expression du fichier de vos tentatives pour le supprimer.
Ouvrier
8
"._."Vous ne pouvez pas supprimer cela car les koalas sont une espèce protégée.

Réponses:

146

Exécutez la commande suivante (peut nécessiter des privilèges élevés / une invite de commande ouverte en tant qu'administrateur):

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

À propos du \\?\préfixe :

Pour les E / S sur les fichiers, le \\?\préfixe " " d'une chaîne de chemin indique aux API Windows de désactiver toute analyse de chaîne et d'envoyer la chaîne qui la 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 s'avérer utile si vous essayez d'effectuer des opérations sur un fichier avec ces chemins relatifs, sinon réservés. spécificateurs dans le cadre 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 "._."

==>
JosefZ
la source
Il est possible d’utiliser ce préfixe avec une URL, à la startcommande?
Steven Penny
Vous ne l'utilisez pas avec une URL. Vous utilisez des guillemets si vous souhaitez exécuter une URL à partir de la commande de démarrage.
Nelson
1
... Cela peut-il être utilisé pour contourner les limites de longueur? (Par exemple, supprimez un node_modulesrépertoire.)
jpmc26
1
@ jpmc26 Selon MSDN (voir le lien fourni dans ma réponse), oui. Cependant, j'ai rencontré des scénarios dans lesquels le \\?\ préfixe utilisé dans delou les rmdircommandes ne permettaient pas de résoudre le problème. Tourné vers 7-ziple gestionnaire de fichiers.
JosefZ
2
@ jpmc26: Il peut contourner certaines limites de longueur. Fondamentalement, un chemin étendu a une limite de longueur de 32 Ko. Mais la plupart des chemins aiment C:\Windowsou ..ne sont pas développés, et ceux-ci ont une limite de longueur de seulement 260. Cette limite de 260 est appliquée dans de nombreux endroits; Malheureusement, bon nombre de ces endroits appliquent à tort cette limite également aux chemins "\\?".
MSalters
24

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
Client
la source
20

Installez 7-zip , ouvrez-le et utilisez son menu Fichier pour renommer le fichier en un nom normal (par exemple aaa) et vous pourrez ensuite le supprimer. 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é.

NZD
la source
-4

Ouvrez simplement votre explorateur Windows, naviguez jusqu'au fichier. Renommez le fichier comme suit: filename.txt Vous pouvez maintenant le supprimer. Si vous ne pouvez pas faire cela, vous devez être sûr que vous avez les droits d'administrateur.

(La raison pour laquelle vous ne pouvez pas le supprimer est due au fait que le nom du fichier n'a pas de nom et que l'extension n'est pas valide. Le nom du fichier est "." et l'extension est "__.", ce qui n'est pas autorisé.)

Arie Klep
la source
1
@ The_IT_Guy_You_Don't_Like, je suis curieux de savoir où OP a mentionné cela?
muru
@ Arie Klep, je reprends mes mots. Je dois l'avoir lu dans une autre question similaire
jeu de mots
-8

Vous pouvez supprimer le fichier en 1) acquérant la propriété 2) accordant aux administrateurs (vous) une autorisation complète 3) Faites ce que vous voulez avec le fichier

Invite CMD élevée

takeown / f Chemin complet du fichier non effaçable (le dernier élément doit être le fichier non effaçable)

icacls Chemin d'accès complet aux administrateurs de fichiers / subventions non supprimables: f

Supprimer le fichier

utilisateur53336
la source
26
Le problème semble être que Windows ne peut absolument pas accéder au fichier à cause de son nom de fichier non conforme. Je serais donc très surpris que cette réponse fonctionne.
Scott