如何删除名称以点(“。”)结尾的文件夹?

我得到了一些由恶意软件创build的文件夹,其名称以C:\a.\C:\b.\等点结尾。

我发现一个解决scheme,可以删除命令rd /q /s "C:\a.\"这样的文件夹,但如果我调用win API RemoveDirectory ,它返回ERROR_FILE_NOT_FOUND

而我只是想知道如何编写一个函数来删除这样的目录,谢谢

我在我自己的Windows XP SP3系统上testing

创build一个文件夹C:\>mkdir a..\\\ ,我不能双击来访问这个文件夹。 我可以用命令rd /q /s "C:\a.\"来删除rd /q /s "C:\a.\"

rd /q /s命令调用哪些Windows系统API?

这是一个解决这个问题的方法 :

 rd /s "\\?\C:\Documents and Settings\User\Desktop\Annoying Folder." 

解决scheme:当您调用RemoveDirectory时,请确保以string“ \\?\ ”作为path的前缀。

说明:它与点有关。 根据MSDN,在某些情况下,您可能无法删除NTFS卷上的文件或文件夹,特别是在Win32名称空间中文件名无效的情况下(这就是为什么您无法使用Windows资源pipe理器中的常规方法)。

如果文件名包含无效名称(例如,文件名具有尾随空格或尾随句点或文件名仅由空格组成),则可能无法删除文件。 要解决此问题,请使用使用适当内部语法的工具来删除该文件。 您可以使用“\\?\”语法和一些工具来操作这些文件,例如:

del“\\?\ c:\ path_to_file_that包含一个结尾的space.txt”

此问题的原因是类似于原因4.但是,如果您使用典型的Win32语法来打开文件的名称中具有尾随空格或尾随句点,尾部空格或句点将打开实际文件之前被删除。 因此,如果您在名为“AFile.txt”和“AFile.txt”(注意文件名称后面的空格)的同一文件夹中有两个文件,则如果尝试使用标准Win32调用打开第二个文件,则可以打开第一个文件。 同样,如果您有一个文件的名称只是“”(空格字符),并且您尝试通过使用标准的Win32调用来打开它,您可以打开文件的父文件夹。 在这种情况下,如果您尝试更改这些文件的安全设置,则可能无法执行此操作,或者您可能会意外更改不同文件的设置。 如果发生这种情况,您可能会认为您具有实际上具有限制性ACL的文件的权限。

(来源: http : //support.microsoft.com/?kbid=320081 )

我发布了这个SU,我决定在这里发布。 它是最简单,最快速,最简单的方法。 我现在在笑,这是多么简单。

  1. 安装WinRAR
  2. 按照图片中的步骤过程:
  3. 在这里输入图像说明
  4. 在这里输入图像说明
  5. 在这里输入图像说明
  6. 在这里输入图像说明

我自己安装了WinRaR,所以我决定在其中演示解决方法。
这种解决方法也可以通过使用7zip。

另一件事情,我应该提到的是,因为它似乎是由使用Windows资源pipe理器和任何其他文件浏览器(如WinRAR文件浏览器本身,FTP探险家等)造成的问题将视为正常的这种文件。
你可以尝试使用任何文件浏览器,只是删除这些文件,而不是打扰归档他们! 干杯!

当你看到这个名字是“a。”,但实际的名字是“a ..”

尝试这个:

 rd /q /s "C:\a..\" 

您可以尝试使用以下代码浏览文件夹:

 for /f "tokens=3 delims=<>" %%a in ('dir /ad /x "C:\*" ^| findstr " a\.\.$"') do ( for /f "tokens=1" %%b in ("%%a") do start "" "%%~fb" ) 

尝试使用解锁程序来删除无法正常删除的文件和文件夹。

我用“ WinRar ”一个简单的RAR,ZIP处理器。 您可以使用任何types的文件名称编辑器。 只要打开你的文件进入WinRar的目录,右键点击你想重命名的文件/文件夹并填入新的名称后select重命名。

如果你安装了git(你可以从这里获得),那么它就像下面这样简单:

  1. 导航到问题文件夹所在的位置。
  2. 上下文菜单(鼠标右键)> Git Bash在这里。
  3. rm -rf Foldername./

在Windows 10上使用Ubuntu的bash rm命令