有时,当我尝试在 Windows 中删除文件夹时,我会收到一条消息,提示我需要 [我当前帐户] 的权限才能删除该文件夹。这很奇怪,因为我已经以该用户身份登录。但是,当我打开文件夹、选择所有内容并删除它们(没有任何提示)时,我可以返回并删除原始文件夹,而无需安全提示。
这种情况最常发生在 Visual Studio 创建的项目文件夹中(通常,.vs 和 .git 文件夹会导致此问题),但其他文件夹也发生过这种情况。它还会递归发生:我打开一个有问题的文件夹,删除所有内容,收到一条消息,提示一堆子文件夹无法删除,打开每个子文件夹,删除所有内容,等等。
如果我使用 Process Explorer 检查该文件夹,则无法找到任何附加到该文件夹或其任何内容的进程。
看起来这很容易实现自动化,但为什么会发生这种情况呢?
答案1
我经常想知道同样的事情。基于 Unix(linux) 的系统不会出现此问题,我猜想这是因为存在内核缠绕问题,而 MS 不愿意承担此问题。
我已经调查过这个问题好几次了。我试图帮助你,但我的知识绝不是一个明确的答案。我记得这个问题直到 win7 才出现,而且它仍然存在的事实让我相信这个问题在 MS 内核中太复杂、太深,他们不想修复它。
第一种可能是其他进程以某种方式堵塞或死锁。这可能很简单,例如文件资源管理器在需要程序图标时访问但不释放程序。
另一种可能性是 MS 缓存程序存在一些未知问题或者出现混乱,因此某些进程或程序告诉文件管理器它正在使用中,或者可能应该保持可用。
或者所有权被搞砸了。也许在访问它之后,文件属性表显示系统正在使用或控制它,并且没有用户有权限对其进行操作。这可能与文件锁定问题有关。
我最好的猜测是,并且这只是瞎猜,文件和内存管理器以某种方式搞砸了,文件信息变得不可编辑 - 甚至系统或内核也无法编辑。
指向内核缓存/内存/或文件管理器问题的一个线索是它在重新启动后消失(可能表示所有权或正在使用的文件锁定问题)。无论问题是什么,这都是微软的一个重大失误(他们意识到了这一点),他们最优秀、最聪明的程序员无法以成本和资源有效的方式解决这个问题。