如何删除名称以点(“。”)结尾的文件夹?
我得到了一些由恶意软件创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,我决定在这里发布。 它是最简单,最快速,最简单的方法。 我现在在笑,这是多么简单。
- 安装WinRAR
- 按照图片中的步骤过程:
我自己安装了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(你可以从这里获得),那么它就像下面这样简单:
- 导航到问题文件夹所在的位置。
- 上下文菜单(鼠标右键)> Git Bash在这里。
-
rm -rf Foldername./
在Windows 10上使用Ubuntu的bash rm命令