【问题标题】:C#: Prevent Child Process to Lock the Caller FolderC#:防止子进程锁定调用者文件夹
【发布时间】:2015-04-14 23:57:51
【问题描述】:

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

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

我关闭 app1.exe。

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

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


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

【问题讨论】:

    标签: c# windows process locking


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-11-06
      • 2019-02-12
      • 1970-01-01
      • 1970-01-01
      • 2016-11-13
      • 1970-01-01
      • 2010-09-15
      相关资源
      最近更新 更多