失手将一个文件夹的名字修改成了...
使用右键删除和 cmd 中的 del 操作都无法删除这个文件夹,但是用 wsl 删除成功了。
在 ubuntu 上测试了下,也可以正常删除。
请问两个文件系统有什么差异导致操作结果不同?
1
imn1 2020-07-19 22:27:54 +08:00
第三个点可能视为扩展名分隔符了
只是猜的,不是经验 |
2
lxilu 2020-07-20 01:45:27 +08:00 via iPhone
文件系统无关。线索:..表示上级目录
|
3
winterbells 2020-07-20 09:20:27 +08:00 via Android
del "..."
这个呢 |
4
shenlanAZ 2020-07-20 09:27:38 +08:00
盲猜底层 API 校验的规则不同,windows 上可以被 7zip 解压出(创建出)超长的文件名,但是却删不掉。
del 命令不行,也没有办法查找文件节点去删除节点。 最后一个好用的方法就是 去上级目录 rd /s 递归删除目录。 |
5
celeron533 2020-07-20 09:37:33 +08:00
> windows 上可以被 7zip 解压出(创建出)超长的文件名,但是却删不掉
可尝试在注册表中去掉 240 字文件夹长度兼容性限制 |
6
amonqsq OP @shenlanAZ 我之前不太熟悉 command prompt,之前竟然在用 del 去删除文件夹(捂脸)。在上级删除...,显示"另一个程序正在使用此文件,进程无法访问。",在上上一级删除 dir_name\...,显示"目录不是空的。"。
|
7
amonqsq OP @lxilu 我自认为您说的意思是匹配到 两个. 就不继续匹配了,但尝试删除"...exp"这样的文件夹名时能正常删除。
|
8
Wongz 2020-07-20 11:53:56 +08:00
rd /s /q X:\...\ 可以删除
|
10
amonqsq OP 像 @shenlanAZ 说的那样,是因为底层 API 校验的规则不同,cmd 将...解析成了..\. 。 加入\\?\前缀可以完成删除。
[Naming Files, Paths, and Namespaces]( https://docs.microsoft.com/zh-cn/windows/win32/fileio/naming-a-file?redirectedfrom=MSDN) |