【发布时间】:2020-04-20 07:23:07
【问题描述】:
我需要删除一个文件,即使它被正在运行的进程使用。 首先,当然需要关闭进程,然后如果文件存在,则应该删除它。
我正在使用以下代码:
示例:
Dim Processes() As Process = Process.GetProcessesByName("test")
For Each Process As Process In Processes
Process.Kill()
Next
My.Computer.FileSystem.DeleteFile(C:\ProgramFiles\Test\test.exe)
我试过上面的代码,它不起作用,文件仍在运行,也没有被删除!你能提供一个可靠的解决方案来解决这个问题吗? 谢谢。
【问题讨论】:
-
GetProcessesByName("test")是否确实获得了您想要的流程?如果在任务管理器中手动杀死进程,可以手动删除文件吗? -
是的,如果我从任务管理器中杀死它,我可以删除该文件,但是我希望我的应用程序首先杀死该进程(仅当它正在运行时),然后再删除该文件。 “测试”仅作为样本提供。它将被我想要杀死和删除的文件名替换。
-
GetProcessesByName("someFilename")一定能得到你想要的进程吗? -
是的,确实如此……
-
如果你让代码暂停几秒钟,
Threading.Thread.Sleep(2000),它可以删除文件吗?就像你在任务管理器中杀死它然后删除它之间有一个小的延迟。