Windows kann nicht gelöscht werden ._. Datei

90

Ich habe derzeit eine Datei im Stammverzeichnis meiner externen Festplatte mit dem einfachen Namen ._., die meiner Schätzung nach meiner Festplatte hinzugefügt wurde, nachdem sie vor einiger Zeit auf meinem MacBook verwendet wurde. Ich versuche, diese Datei auf meinem Windows 10-Computer zu löschen. Windows behauptet jedoch weiterhin, dass die Datei nicht gefunden werden kann.

Fehlermeldung vom Windows Explorer

Ich habe auch versucht, die Datei über eine Eingabeaufforderung mit erhöhten Rechten zu löschen. es wird jedoch dieselbe Nachricht zurückgegeben.

Fehlermeldung an der Eingabeaufforderung mit erhöhten Rechten

Kann ich diese Datei auf irgendeine Weise über Windows von meiner Festplatte löschen?

Mike Koch
quelle
7
@ rr- das Elend, das Sie mit Unix-Dateinamen anrichten können, ist tendenziell viel größer. : 3
Martijn
5
Ihre Eingabeaufforderung zeigt etwas Seltsames. Sie haben find "._."aber die Anführungszeichen für weggelassen del ._.. Hast du es versucht del "._."?
jpmc26
1
interessantes Phänomen. vor allem, wie schwer es ist, zu löschen. Sind Sie sicher, dass die Datei ordnungsgemäß erstellt wurde? (die Benennung klingt auch für einen Mac ziemlich seltsam)
Thomas
30
Mein Lieblingsteil ist der Ausdruck Ihrer Versuche, die Datei zu löschen.
Workman
8
"._."Sie können dies nicht löschen, da Koalas eine geschützte Art sind.

Antworten:

146

Führen Sie den folgenden Befehl aus (möglicherweise sind erhöhte Berechtigungen erforderlich / Eingabeaufforderung als Administrator öffnen):

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

Über das \\?\Präfix :

Bei " \\?\" Datei-E / A weist das Präfix einer Pfadzeichenfolge die Windows-APIs an, alle Zeichenfolgenanalyse zu deaktivieren und die darauf folgende Zeichenfolge direkt an das Dateisystem zu senden.

...

Da die automatische Erweiterung der Pfadzeichenfolge deaktiviert ist, können mit dem " \\?\" Präfix auch " .." und " ." in den Pfadnamen verwendet werden. Dies kann hilfreich sein, wenn Sie versuchen, Operationen an einer Datei mit diesem ansonsten reservierten relativen Pfad durchzuführen Bezeichner als Teil des vollständig qualifizierten Pfades.

Beachten Sie, dass Sie das \\?\Präfix " " nicht mit einem relativen Pfad verwenden können.

Beispiel :

==> 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
quelle
Es ist möglich, dieses Präfix mit einer URL zu verwenden, als der startBefehl?
Steven Penny
Sie verwenden dies nicht mit einer URL. Sie verwenden doppelte Anführungszeichen, wenn Sie eine URL über den Startbefehl ausführen möchten.
Nelson
1
... Kann dies verwendet werden, um Längenbeschränkungen zu umgehen? (Löschen Sie beispielsweise ein node_modulesVerzeichnis.)
jpmc26
1
@ jpmc26 Laut MSDN (siehe Link in meiner Antwort), ja. Allerdings habe ich Szenarien getroffen, in denen \\?\ Präfixe deloder rmdirBefehle nicht geholfen haben. Verwandelte sich in 7-zipDatei-Manager.
JosefZ
2
@ jpmc26: Es kann einige Längenbeschränkungen umgehen. Grundsätzlich hat ein erweiterter Pfad ein Längenlimit von 32 KB. Aber die meisten Pfade mögen C:\Windowsoder ..werden nicht erweitert, und diese haben eine Längenbeschränkung von nur 260. Diese Beschränkung von 260 wird an vielen Stellen durchgesetzt; Leider wenden einige dieser Stellen fälschlicherweise diese Beschränkung auch auf "\\?" - Pfade an.
MSalters
24

Obwohl die Frage bereits beantwortet wurde, möchte ich dennoch eine mögliche alternative Lösung anbieten: Die Verwendung der alten "Kurznamen" (die Sie mit der Option "/ x" für den Befehl dir anzeigen können) kann dies auch ermöglichen Verschaffen Sie sich einen Überblick über Dateien mit "funky" Namen, die Sie sonst nicht verarbeiten können:

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
Gast
quelle
20

Installieren Sie 7-zip , öffnen Sie es und verwenden Sie das Dateimenü, um die Datei in einen normalen Namen umzubenennen (z. B. in aaa). Anschließend können Sie sie löschen. Gefunden in diesem Beitrag.

Ich habe dies unter Windows XP getestet und in einer VM ausgeführt. Ich habe Linux verwendet, um eine Datei zu erstellen, die ._.in einem freigegebenen Verzeichnis aufgerufen wird .

NZD
quelle
-4

Öffnen Sie einfach Ihren Windows Explorer und navigieren Sie zu der Datei. Benennen Sie die Datei wie folgt um: filename.txt Jetzt können Sie sie löschen. Wenn Sie dies nicht können, müssen Sie sicherstellen, dass Sie über Administratorrechte verfügen.

(Übrigens, der Grund, warum Sie es nicht löschen können, ist, dass der Dateiname keinen Namen hat und die Erweiterung ungültig ist. Der Dateiname ist "." und die Erweiterung ist "__.", was nicht erlaubt ist.)

Arie Klep
quelle
1
@ The_IT_Guy_You_Don't_Like Ich bin neugierig, wo hat OP das erwähnt?
muru
@Arie Klep, ich nehme meine Worte zurück. Ich muss es in einer anderen ähnlichen Frage gelesen haben
Wortspiel
-8

Sie können die Datei löschen, indem Sie 1) Eigentümer werden, 2) Administratoren (Ihnen) die volle Berechtigung erteilen, 3) mit der Datei das tun, was Sie wollen

Erhöhte CMD-Eingabeaufforderung

takeown / f Vollständiger Pfad zur nicht löschbaren Datei (letztes Element muss die nicht löschbare Datei sein)

icacls vollständiger Pfad zu nicht löschbaren Datei- / Gewährungsadministratoren: f

Datei löschen

user53336
quelle
26
Das Problem scheint zu sein, dass Windows wegen des nicht übereinstimmenden Dateinamens überhaupt nicht auf die Datei zugreifen kann. Daher wäre ich sehr überrascht, wenn diese Antwort funktioniert.
Scott