什么阻止windows删除正在使用的文件?

zte4gxcn  于 2023-08-07  发布在  Windows
关注(0)|答案(2)|浏览(109)

有时我尝试用del /f filename删除一个文件,它说“进程无法访问该文件,因为它正被另一个进程使用。”。出于好奇,到底是什么阻止了这种情况的发生?是硬件的设置方式,还是更多的是软件方面?如果唯一阻止这种情况发生的是软件,有没有办法解决它(强制windows删除正在访问的内存的一部分,如果它在使用它的任何进程中导致错误,就让它崩溃并退出)?我试着在网上找了找不到任何东西。
谢啦,谢啦

wtlkbnrh

wtlkbnrh1#

当程序使用文件时,它们维护"file handles""file handles"为程序交互提供文件和上下文的引用。虽然这些句柄并不总是阻止操作,如删除,但如果程序的文件句柄告诉它,操作系统将阻止这些操作。您所经历的是,当程序应该释放这些句柄时,这些句柄未能被关闭。
Handle tool是Mark Russinovich的Windows Sysinternals suite的一部分,是一个命令行界面,用于查看和管理这些卡住的文件句柄。它不是最简单的工具,非常简陋,但它很强大。鉴于CLI的特性,当然可以 Package 额外的功能以便于使用。下面是PowerShell中的a (rough) example

  • 编辑:谨慎使用。为了澄清,强制关闭文件句柄可能会导致数据损坏,只有在确定句柄被卡住时才应该使用;例如,当你显式地打开一个你也关闭的程序时。如果可能的话,重新启动机器会更安全。*
wfsdck30

wfsdck302#

如果软件程序正在加载或阅读要删除的文件,则会出现此错误。你唯一能做的就是关闭程序,然后再次尝试删除该文件。

相关问题