win10 - 删除非法命名的文件夹的方法
2026/5/14 15:11:40 网站建设 项目流程

文章目录

    • win10 - 删除非法命名的文件夹的方法
    • 概述
    • 笔记
    • 删除非法命名的文件夹
    • 微PE工具箱 - 不行
    • 蜂鸟PE - OK
    • 备注
    • 备注
    • 尝试搞出一个畸形目录出来
      • 用手工在资源管理器中建立畸形目录,是不行的。
      • 用命令行试试
      • 在msys2-mingw64中试试
    • 备注
    • 备注
    • END

win10 - 删除非法命名的文件夹的方法

概述

在修改编译开源工程Smoothieware, 用的msys2-mingw64命令行。
昨天,因为修改makefile时弄错了,生成了一个nul的文件。
在win10中,用手工删除,或者用cmd管理员模式,都删除不掉。
最后,重启计算机后,在msys2-mingw64中删掉了。

今天将Smoothieware工程作为makefile工程导入eclipse-cpp中,发现报错,说有一个…drop目录导入失败。
去看了一下。


这个文件夹在文件资源管理器中可以打开。
但是在资源管理器中,手工删除失败。

用管理员运行win10cmd, 删除该文件夹。

也删不掉。
看起来,是因为文件夹的名字前面有"."字符引起删除失败。
那为啥win10允许程序建立这种非法命名的文件夹呢?疑惑。

笔记

dir > log.txt确认文件夹的名称

发现这个文件夹名称为"…drop "
在这个文件夹下,只能新建文件夹,无法新建文件

在cmd中,可以进入新建的子文件夹(必须cd “全路径名称”)

D:\3rd\openpnp_prj\Smoothieware\Smoothieware\mbed\src>cd"..drop\test"D:\3rd\openpnp_prj\Smoothieware\Smoothieware\mbed\src\..drop\test>

也可以在新建的子文件夹中新建文件,编辑文件,删除文件。
但是如果想从子文件夹中退到上级文件夹,就不行了。

D:\3rd\openpnp_prj\Smoothieware\Smoothieware\mbed\src\..drop\test>cd..系统找不到指定的路径。 D:\3rd\openpnp_prj\Smoothieware\Smoothieware\mbed\src\..drop\test>cd../ 系统找不到指定的路径。 D:\3rd\openpnp_prj\Smoothieware\Smoothieware\mbed\src\..drop\test>

也无法手工改名文件夹

删除非法命名的文件夹

D:\tools\debug\SysinternalsSuite\SysinternalsSuite_2025_0213>movefile64.exe"D:\3rd\openpnp_prj\Smoothieware\Smoothieware\mbed\src\..drop """MoveFile v1.02 - Creates pending movefile operations Copyright(C)2001-2016 Mark Russinovich Sysinternals - www.sysinternals.com Move successfully scheduled.

不好使,重启后,还是依旧。

C:\Windows\system32>cd /d D:\tools\debug\SysinternalsSuite\SysinternalsSuite_2025_0213 D:\tools\debug\SysinternalsSuite\SysinternalsSuite_2025_0213>movefile64.exe"D:\3rd\openpnp_prj\Smoothieware\Smoothieware\mbed\src\..drop ""\??\D:\3rd\openpnp_prj\Smoothieware\Smoothieware\mbed\src\a1_drop"MoveFile v1.02 - Creates pending movefile operations Copyright(C)2001-2016 Mark Russinovich Sysinternals - www.sysinternals.com Move successfully scheduled. D:\tools\debug\SysinternalsSuite\SysinternalsSuite_2025_0213>

不好使,重启后,还是依旧。

还试用了一些强制删除文件的工具(e.g. BlankAndSecure 7.97 64位.zip, Wise Force Deleter_1.5.3.54LV.rar), 都删不掉,原因是那些软件,也依赖windows对文件的命名。如果文件名就是非法的,那些软件也不能用。

最后想到,是否可以在PE工具中来删除?试了一下,可以的。不过不是每种PE工具都行的,也要依赖PE工具中自带的工具。

微PE工具箱 - 不行

以前就在本地装了"微PE", 可以开机选择启动的。
可能我用的不是新版,进入PE后,只能看到我的机械硬盘,看不到2块SSD.
而这个畸形目录在SSD上的win10的D盘。

蜂鸟PE - OK

去下载了蜂鸟PE, 蜂鸟PE-v2.4.2-维护版.7z
解压后运行。
选择本地模式, 安装。
这样计算机重新启动后,就有了启动菜单,可以选择启动win10还是蜂鸟PE.
选择启动蜂鸟PE.
进了PE之后,打开文件浏览器,尝试对"D:\3rd\openpnp_prj\Smoothieware\Smoothieware\mbed\src…drop “改名或者删除,都不好使。
从开始菜单上选择"畸形目录工具”

选择目录改名
浏览到那个不能操作的目录 = “D:\3rd\openpnp_prj\Smoothieware\Smoothieware\mbed\src…drop "
勾选目录改名,点击确定,操作成功完成。

去"D:\3rd\openpnp_prj\Smoothieware\Smoothieware\mbed\src” 目录中查看, 目录已经改名为了"D:\3rd\openpnp_prj\Smoothieware\Smoothieware\mbed\src…drop H",在原来目录的名字后面加了一个"H"字母
虽然看起来,这个目录的名字还是不符合windows文件命名规则,但是可以右键删除了 😛

备注

我知道360的文件粉碎机是可以干这个活的,不过360太重了。
我试了好多方法都不行,当时想,如果在PE中操作畸形文件都不行,那只能去临时装一下360, 用完了再卸载。
居然蜂鸟PE中带了这么贴心的工具,作者非常专业! 感谢!

备注

查了一下蜂鸟PE的安装位置,C:\PETOOL
蜂鸟PE在控制面板中,是没有卸载条目的。只能用蜂鸟PE的应用(蜂鸟PE-v2.4.2-维护版.EXE)来卸载。
在安装前的win10目录中找了一下,并没有发现那个"畸形目录工具",好可惜,只能去PE中去用这个工具。
想了一下,能不能去PE里面,将这个工具,存到我的硬盘上呢?试了一下,可以的,这就方便多了,以后不用去PE中去用这个工具了。
蜂鸟PE是win11-21H2版本的PE环境。

我win10硬盘上的一些非安装工具(e.g. SysinternalsSuite)都是能正常用的
目录纠正工具位置

X:\Program Files\Deformitydir\Deformitydir.exe

蜂鸟PE建立的系统盘X是内存盘.
运行Deformitydir.exe后,用procexp64.exe观察,这是绿色软件

拷贝到自己的PE工具目录中,回到win10正常环境,可以用的。

这就方便多了,以后再遇到畸形目录名称,就用这个工具来改名或者删除。

尝试搞出一个畸形目录出来

用手工在资源管理器中建立畸形目录,是不行的。

手工建立目录e.g. “…test “, 建立成功后, 用 “dir > log.txt"做日志,看log.txt, 发现建立的不是”…test “, 而是”…test”
且”…test"是可以在资源管理器中删除的。

用命令行试试

mkdir"..test "

用 “dir > log.txt"做日志,看log.txt, 发现建立的不是”…test “, 而是”…test"
且"…test"是可以在资源管理器中删除的。

在msys2-mingw64中试试

回想一下,我是在msys2-mingw64中,用makefile编译程序时,因为makefile修改错了,导致了畸形目录的生成。
那我在msys2-mingw64的命令行下,先试一下,是否命令行就能产生畸形目录?


问题重现了,由msys2-mingw64命令行建立的文件夹,在该文件夹中只能新建目录,不能新建文件。
尝试在win10管理器中,改名或者删除这个"…test ", 看行不行?估计是不行。

果真不行,问题重现了。 我好机智! 好有调试的感觉!

既然问题重现了,用我从蜂鸟PE环境中拷贝出来的畸形目录管理工具,在win10中试试,看行不行?


可以的!

被工具改名后的"…test H"目录,是可以在资源管理器中手工删除的!
问题解决!
这个问题解决的完美!调试思路清晰!

备注

从这个问题可以看出来,windows目录名称前缀的名字后面不能带空格。如果带了空格,大部分软件就处理不了了。
这个畸形目录中,不能新建文件,只能新建子目录。子目录可以正常操作。
这个畸形目录的这些特性(除了无法操作),无法作为有用的扩展特性来应用到其他适用的场景。

备注

试了一下,用msys2-mingw64可以新建在win10中不能操作的畸形目录"…test "。
但是msys2-mingw64也看不到这个目录,真奇葩啊。

这个由msys2-mingw64做出的畸形目录问题,算不算msys2的bug呢?
按理说,由谁开始的活,谁就是主人,主人建立了一个目录,结果主人自己也无法管理这个目录,奇葩啊。

END

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询