深入探讨 Windows 11 文件被占用错误的根本原因,并提供实用的解决方案,帮助用户轻松解决文件操作受阻的问题。
Windows 11 用户在尝试删除或重命名文件时,常常会遇到"文件正在被另一个程序使用"的提示。尽管已经关闭了相关应用程序,但系统仍然提示文件被占用。这一现象不仅在 Windows 11 中存在,实际上在 Windows 系统的历史中已经存在了数十年。近日,微软技术高级总监兼 Azure CTO 马克·拉辛诺维奇(Mark Russinovich)详细解释了这一问题的成因,并提供了解决方案。 文件被占用错误的本质 当应用程序打开一个文件时,Windows 系统会创建一个称为文件句柄的引用。文件句柄是 Windows 用于跟踪哪个程序正在访问哪个文件的一种机制。
为了防止数据损坏,Windows 会阻止用户在文件句柄仍然存在的情况下删除或重命名文件。理论上,当用户关闭应用程序时,这些句柄应该会被释放。然而,实际使用中,关闭应用程序并不意味着所有文件句柄都会被释放。 文件被占用的常见原因 拉辛诺维奇指出,文件在关闭应用程序后仍然被占用,主要有以下三种常见原因。首先,杀毒软件可能正在扫描该文件。当杀毒软件进行扫描时,它会在系统级别打开文件句柄。
即使媒体播放器或 Word 等应用程序已经完全关闭,杀毒软件的扫描进程仍然可能在后台持有该文件的句柄。其次,文件可能被网络上的其他设备引用。如果同一网络上的其他设备执行了打开该文件的操作,远程进程可能仍然持有该文件的句柄。第三种情况是最棘手的,即 DLL 场景。如果文件被加载到进程中作为动态链接库(DLL),它不会显示为文件句柄,而是显示为内存中的引用。用户无法通过标准工具看到任何打开的句柄,但文件仍然被锁定,因为它被映射到应用程序的地址空间中。
要释放此类锁定,必须终止整个持有该文件的应用程序。 如何找到占用文件的进程 为了帮助用户解决这一问题,拉辛诺维奇在 1990 年代开发了一个名为 Handle 的命令行工具。Handle 是 Sysinternals 工具套件的一部分,微软现在维护该工具套件。通过以管理员身份运行 Handle,用户可以查看系统上所有打开的文件句柄,包括进程名称和 ID。用户可以搜索特定文件名,快速找到占用该文件的进程。 Process Explorer 是 Handle 的图形界面伴侣工具,也是拉辛诺维奇开发的。
在 Process Explorer 中,用户可以通过按下 Ctrl + Shift + F 打开"查找句柄或 DLL"搜索窗口。输入被锁定文件的名称,可以查看哪个进程正在占用该文件。用户可以右键点击该进程,直接关闭句柄,或者终止该进程,然后重试删除操作。 PowerToys 中的 Sysinternals 工具 对于不熟悉命令行的用户,微软提供了更友好的选项。Windows Latest 在 2024 年报道称,拉辛诺维奇本人建议将 Sysinternals 工具集成到 PowerToys 中,这一想法正在逐渐推广。PowerToys 已经包含了 File Locksmith 工具,用户可以右键点击文件,选择"用 File Locksmith 解锁",立即查看所有占用该文件的进程列表。
用户可以从同一个窗口结束占用文件的进程,然后删除文件,无需接触命令行。 微软推荐的解决方案 拉辛诺维奇还在视频中分享了一个实用的解决方案。如果无法立即终止占用文件的进程,用户可以尝试重命名文件,而不是删除它。在某些情况下,Windows 允许用户在文件被占用时重命名它。重命名后,用户可以在同一位置放置一个新的文件副本,并保留原始文件名。任何需要该文件的进程都会自动使用新版本。
重命名后的旧副本可以在占用它的进程最终释放句柄后删除。 这一问题自 Windows 系统诞生以来就存在,尽管微软已经承认了这一问题,并提供了实用的解释。拉辛诺维奇花费数十年开发工具来展示 Windows 隐藏的内容,而这些工具在 2026 年仍然必要,足以说明这一问题在操作系统中的深度。 通过了解文件被占用错误的根本原因,并利用微软提供的工具和解决方案,Windows 11 用户可以更高效地管理文件操作,避免因文件被占用而导致的不便。 。