Windows无法删除._。文件


91

我目前在外部硬盘驱动器的根目录上有一个名为的文件._.,我猜它是在MacBook上使用一段时间后添加到硬盘驱动器中的。我正在尝试在Windows 10计算机上删除此文件;但是Windows一直声称找不到该文件。

Windows资源管理器中的错误消息

我还尝试通过提升的命令提示符删除文件;但是,返回相同的消息。

来自提升的命令提示符的错误消息

有什么办法可以通过Windows从硬盘驱动器中删除此文件?


7
@ rr-使用Unix文件名可能会遇到的痛苦更加严重。:3
Martijn

5
您的命令提示符显示奇怪的东西。您确实做到了,find "._."但忽略了的引号del ._.。你尝试了del "._."吗?
jpmc26 2015年

1
有趣的现象。尤其是删除有多难。您确定文件是合法创建的吗?(即使是Mac,它的名称听起来也很奇怪)
Thomas

30
我最喜欢的部分是您尝试删除文件的文件表达。
Workman 2015年

8
"._."您不能删除它,因为考拉是受保护的物种。

Answers:


146

运行以下命令(可能需要提升的特权/以管理员身份打开命令提示符):

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

关于\\?\前缀

对于文件I / O,\\?\路径字符串的前缀“ ”指示Windows API禁用所有字符串解析,并将其后的字符串直接发送到文件系统。

...

由于\\?\前缀“ ” 会关闭路径字符串的自动扩展,因此还允许在路径名中使用“ ..”和“ .”,如果您尝试使用这些保留的相对路径对文件执行操作,这将很有用。说明符作为完全限定路径的一部分。

请注意,您不能将“ \\?\”前缀与相对路径一起使用。

范例

==> 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 "._."

==>

可以在URL中使用该前缀,这是start命令吗?
Steven Penny

您不要将其与URL一起使用。如果要从启动命令运行URL,请使用双引号。
尼尔森

1
...可以用来绕过长度限制吗?(例如,删除node_modules目录。)
jpmc26,2015年

1
@ jpmc26根据MSDN(请参阅我的答案中提供的链接),是的。但是,我遇到了\\?\ delrmdir命令中使用前缀没有帮助的情况。转到7-zip文件管理器。
JosefZ 2015年

2
@ jpmc26:它可以绕过一些长度限制。基本上,扩展路径的长度限制为32K。但是大多数路径都喜欢C:\Windows..不扩展,它们的长度限制仅为260。在很多地方都强制使用260的限制。不幸的是,这些位置中的许多错误地将该限制也错误地应用于“ \\?”路径。
MSalters 2015年

24

即使已经回答了该问题,我仍然想提供一个可能的替代解决方案:使用旧的“短名称”(您可以在dir命令中使用“ / x”选项显示该名称)也可以使您掌握带有“笨拙”名称的文件,否则您将无法处理这些文件:

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

20

安装7-zip,打开它,然后使用其文件菜单将文件重命名为常规名称(例如aaa),然后将其删除。发现在这个职位。

我在运行VM的Windows XP上对此进行了测试。我使用Linux ._.在共享目录上创建了一个文件。


-4

只需运行Windows资源管理器,然后导航到该文件即可。重命名文件,如:filename.txt现在可以将其删除。如果您无法执行此操作,则需要确保您具有管理员权限。

(顺便说一下,您不能删除它的原因是文件名实际上没有名称,并且扩展名无效。文件名是“。”,扩展名是“ __。”,这是不允许的。)


1
@ The_IT_Guy_You_Dont't_Like我很好奇,OP在哪提到了?
muru 2015年

@Arie Klep,我回复我的话。我一定在另一个类似的问题中读过它
双关语

-8

您可以通过以下方式删除文件:1)拥有所有权2)授予管理员(您)完全权限3)对文件进行所需操作

CMD提示升高

takeown / f不可删除文件的完整路径(最后一项必须是不可删除的文件)

icacls不可删除文件的完整路径/ grant管理员:f

删除文件


26
问题似乎是Windows根本无法访问该文件,因为其文件名不符合要求,所以如果此答案有效,我将感到非常惊讶。
斯科特
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.