C#:阻止子进程锁定调用者文件夹

时间:2015-04-14 23:57:51

标签: c# windows process locking

我启动位于myFolder文件夹中的app1.exe。

此app1.exe通过C#中的Process.Start调用另一个app2.exe。

我关闭了app1.exe。

app2.exe尝试删除myFolder,但它说它已被锁定,因为app2.exe正在使用它,即使app2.exe没有对myFolder做任何事情。

注意:如果我单独启动app2.exe(通过单击.exe),我可以删除myFolder。如果从app1.exe启动了app2.exe,它只会阻止我。


有没有办法允许单独的进程删除其调用者文件夹? app1.exe和app2.exe都在C#中。

1 个答案:

答案 0 :(得分:1)

检查启动ProcessStartInfo时涉及的Process.StartInfoapp2属性)。可能app2开始时WorkingDirectory设置为app1所在的文件夹。如果是这种情况,您可以在启动WorkingDirectory之前尝试将app2设置到其他位置,或者可以在启动后让app2更改目录。