微软揭示为何在关闭应用后Windows 11仍然提示文件正在使用
微软解释了即使在应用关闭后,仍然出现文件正在使用错误的原因。如果您是一个热衷的Windows用户,您可能曾试图在Windows中删除或重命名某个文件时,看到提示 "操作无法完成,因为文件在另一个程序中打开"。实际上,Windows几十年来一直显示此错误,而这并不总是意味着它所说的那样。现在的Azure首席技术官兼微软技术顾问Mark Russinovich最近对此问题进行了说明。Russinovich在1990年代首次遇到这个问题,并专门创建了两个工具来处理它。" '文件正在使用'错误在Windows中意味着什么?是的,这确实是字面意思,但这里有一个更技术性的解释。每当一个程序打开一个文件时,Windows会创建一个叫做文件句柄的对象。文件句柄本质上是Windows用来跟踪在任何给定时刻哪个程序正在访问哪个文件的引用。当存在打开的句柄时,Windows会阻止您删除或重命名文件,因为这样做可能会损坏程序仍在使用的数据。通常,当您关闭应用时,Windows会释放这些句柄。但正如我们都经历过的,关闭可见应用并不总是意味着所有句柄都消失了。 为什么关闭应用并不总是释放文件?Russinovich确定了三个常见原因,解释了文件在您认为已关闭程序后仍然保持锁定的原因。首先,您的防病毒软件可能正在扫描该文件。当防病毒软件运行扫描时,它会在系统级别打开一个文件句柄。即使媒体播放器或Word已经完全关闭,防病毒进程仍可能在后台扫描同一文件并保持其打开。第二,该文件可能被您网络上的另一台计算机引用。如果同一网络上的另一台设备执行了打开该文件的操作,那么该远程进程可能仍持有一个句柄。第三,也是最棘手的,是DLL场景。如果相关文件以DLL(动态链接库)的形式加载到进程中,则不会显示为文件句柄。相反,它显示为内存中的引用。您不会在标准工具中看到任何打开的句柄,但该文件仍然被锁定,因为它映射到应用程序的地址空间。要释放该锁,您必须终止整个映射该文件的应用程序。 如何找出哪个进程导致“文件正在使用”错误?在1990年代,Russinovich构建了一个命令行工具,名为Handle,专门用于处理他自己遇到的这个问题。Handle是Sysinternals套件的一部分,微软现在维护的一组高级Windows实用工具。从管理员命令提示符运行Handle可以显示系统上每个打开的文件句柄,以及负责每个句柄的进程名称和ID。您可以搜索特定的文件名直接找到答案。 Process Explorer是图形里的伴侣。它也是Russinovich构建的,正如我们在之前关于微软承认Windows 11仍构建于90年代Win32的报道中指出的,Russinovich自己说他打赌他自己的Sysinternals工具在2026年仍然相关。然而我们在这里,Process Explorer仍然是Windows上最实用的诊断工具之一。在Process Explorer内部,按下Ctrl + Shift + F可以打开查找句柄或DLL的搜索窗口。输入被锁定文件的名称可以显示哪个进程打开了它。从那里,您可以右键单击该进程并直接关闭句柄,或者终止该进程,然后重试删除。 Sysinternals在PowerToys中,普通用户更容易的选择。如果命令行感觉太复杂,微软提供了一个更友好的选择。正如Windows Latest在2024年报道的,Mark Russinovich本人建议将Sysinternals工具集成到PowerToys中,这个想法正在获得支持。PowerToys已经包括了File Locksmith,一个允许您右键单击文件,选择‘用File Locksmith解锁’,并立即看到每个持有该文件的进程的列表。您可以从同一窗口结束有问题的进程,然后删除该文件,而不需要接触命令行。 微软推荐的解决“文件正在使用”错误的变通方法。Russinovich还在您可以观看的视频中分享了一个实用的变通办法。如果您无法立即终止持有文件的进程,您可以选择重命名该文件而不是删除它。在某些情况下,Windows允许您在文件打开时重命名该文件。重命名后,您可以在同一位置放置原始名称的新文件
本站免费、广告极少。如果觉得有帮助,可以请我们喝杯咖啡 —— 任何金额都对持续运营有实际帮助。
☕请我喝杯咖啡