我似乎已经设法得到了一个应用数据文件夹以某种方式递归到自身,但不会看递归的,但不知何故仍然是,现在我发现自己无法删除该文件夹。该文件夹本身只是旧电脑备份文件夹中的子文件夹。它不再以任何方式使用。
当前文件夹名称为
C:\DWI00672\toremove\brhi\AppData\local
(我将 Documents and Settings 重命名为 toremove)
我已经尝试过了
在资源管理器中删除。
rmdir /s /q .
chkdsk
. 这报告了一个Windows may not detect all cycles on your volume because the directory structure is too deep.
robocopy
将空文件夹镜像到递归文件夹中。这会导致 robocopy 崩溃并出现堆栈溢出:STACK_OVERFLOW_c00000fd_Robocopy.exe!RoboPrune
递归
Application Data
重命名以t
缩短路径长度。此过程会停止,并显示“完全限定名称必须少于 260 个字符”的消息$current = gci "C:\DWI00672\toremove\brhi\AppData\local" -Force while ($true) { $current.FullName if ($current.BaseName -ne "t") {Rename-Item -Path $current.FullName t -ErrorAction Inquire -Force } $current = gci "$($current.Parent.FullName)\t" -Force -ErrorAction Inquire }
下载
TeraCopy
并尝试删除文件夹。subst
进入文件夹结构,使用 Powershell 脚本进一步缩短路径。 驱动之后K:
,我放弃了。junction -s
来自 sysinterals,但没有找到重新解析点。dir /s c:\DWI00672\toremove\brhi\AppData\Local
目前有 330 个目录dir /al /s c:\DWI00672\toremove\brhi\AppData\Local
列出重新解析点返回文件未找到rm -f -d c:\DWI00672\toremove\brhi\AppData\Local
从 Cygwin 以当前用户、管理员和系统用户身份执行(psexec -s -i 命令)。全部返回rm: cannot unlink 'local': Not owner
。本地文件夹的所有者是我当前的用户。
答案1
不幸的是,我无法发表评论。
但是,您可以尝试使用 robocopy 将空目录镜像到 C:\DWI00672,然后删除该目录。
所以:
- mkdir C:\empty
- robocopy C:\empty C:\DWI00672 /PURGE
- 删除目录 C:\empty
- 删除目录 C:\DWI00672
Robocopy 不使用具有 248 个字符限制的相同系统调用。但它可能有一个我不知道的字符上限。
我刚刚在我的系统上尝试过,它运行得很好(它的文件夹结构大约有 400 个字符)。