524 words
3 minutes
强制删除某些不存在的文件/文件夹
前言
我在编辑项目文件的时候,遇到了新建项目文件出错的问题,然后去资源目录查看,结果文件夹直接打不开,但是文件夹实际还在那里。
然后尝试删除但是又提示找不到项目,确定不了位置,简直快把我强迫症逼疯了。实际情况如下图。
经过
在网上找了许多方法,什么文件夹无法删除,文件夹不存在,文件夹不在此位置之类的等等许多问题,和我这里这个情况都没有任何关系。
后面我某种机缘巧合之下,想起了一个方法,想试试用管理员权限的Terminal进行删除试试,结果可想而知,当然以失败告终,连 del
, rm
, rd
, Remove-Item -Path "XXX" -Recurse -Force
等命令都直接提示报错。你使用 ls
, Get-ChildItem
还是可以显示出该文件的文件夹信息,但是就是删除不掉。
以下为中间尝试 rd
命令时候的报错信息,其他的命令基本都差不多。。。
> rd "C:\Users\xxxxx\AppData\LocalLow\foxxlight\AzureArchive\data\projects\KeiEnd-War Never Changes"
rd : Cannot find path 'C:\Users\xxxxx\AppData\LocalLow\foxxlight\AzureArchive\data\projects\KeiEnd-War Never Changes' b
ecause it does not exist.
At line:1 char:1
+ rd "C:\Users\xxxxxx\AppData\LocalLow\foxxlight\AzureArchive\data\proje ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (C:\Users\xxxxxx\...r Never Changes:String) [Remove-Item], ItemNotFoundEx
ception
+ FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.RemoveItemCommand
…
经过了一段时间的挣扎,我放弃了…………
.
.
.
.
.
.
.
.
.
才怪……!!!
解决
使用命令提示符获取短路径名并删除文件夹
打开命令提示符(CMD):
按
Win + R
,输入cmd
,然后按Enter
。导航到目标文件夹的上一级文件夹:
我这里是这个目录,你记得cd到你自己那个文件夹无法删除的目录那里。
cd C:\Users\xxxxxx\AppData\LocalLow\foxxlight\AzureArchive\data\projects
使用
dir /x
命令列出文件夹内容,并查看目标文件夹的短路径名:dir /x
你应该会看到类似这样的输出,其中包含短路径名:
中间的
KEIEEE~1
就是2024/07/07 13:28 <DIR> KEIEEE~1 KeiEEEEEE-War Never Changes.
使用短路径名删除文件夹。例如,如果短路径名是
KEIEEE~1
,则使用以下命令:rd /s /q KEIEEE~1