有时我尝试用del /f filename删除一个文件,它说“进程无法访问该文件,因为它正被另一个进程使用。”。出于好奇,到底是什么阻止了这种情况的发生?是硬件的设置方式,还是更多的是软件方面?如果唯一阻止这种情况发生的是软件,有没有办法解决它(强制windows删除正在访问的内存的一部分,如果它在使用它的任何进程中导致错误,就让它崩溃并退出)?我试着在网上找了找不到任何东西。谢啦,谢啦
del /f filename
wtlkbnrh1#
当程序使用文件时,它们维护"file handles","file handles"为程序交互提供文件和上下文的引用。虽然这些句柄并不总是阻止操作,如删除,但如果程序的文件句柄告诉它,操作系统将阻止这些操作。您所经历的是,当程序应该释放这些句柄时,这些句柄未能被关闭。Handle tool是Mark Russinovich的Windows Sysinternals suite的一部分,是一个命令行界面,用于查看和管理这些卡住的文件句柄。它不是最简单的工具,非常简陋,但它很强大。鉴于CLI的特性,当然可以 Package 额外的功能以便于使用。下面是PowerShell中的a (rough) example。
wfsdck302#
如果软件程序正在加载或阅读要删除的文件,则会出现此错误。你唯一能做的就是关闭程序,然后再次尝试删除该文件。
2条答案
按热度按时间wtlkbnrh1#
当程序使用文件时,它们维护"file handles","file handles"为程序交互提供文件和上下文的引用。虽然这些句柄并不总是阻止操作,如删除,但如果程序的文件句柄告诉它,操作系统将阻止这些操作。您所经历的是,当程序应该释放这些句柄时,这些句柄未能被关闭。
Handle tool是Mark Russinovich的Windows Sysinternals suite的一部分,是一个命令行界面,用于查看和管理这些卡住的文件句柄。它不是最简单的工具,非常简陋,但它很强大。鉴于CLI的特性,当然可以 Package 额外的功能以便于使用。下面是PowerShell中的a (rough) example。
wfsdck302#
如果软件程序正在加载或阅读要删除的文件,则会出现此错误。你唯一能做的就是关闭程序,然后再次尝试删除该文件。