进程锁定文件夹



情况很奇怪。有 2 种应用程序:

1) C:\我的文件夹1\第一.exe

2) C:\我的文件夹2\秒.exe

首先.exe运行第二.exe然后退出。

Process.Start(@"C:MyFolder2Second.exe");
// And exit.

秒.exe等待几秒钟并尝试删除"C:\MyFolder1\"文件夹。

// Wait for 5 seconds - First.exe terminated by that time for 100%
Directory.Delete(@"C:MyFolder1", true);

操作失败,并显示"进程无法访问文件'C:\MyFolder1\',因为它正被另一个进程使用。它可以删除 First.exe 文件(实际上是文件夹中的所有文件),但不能删除文件夹本身。

有没有人知道为什么文件夹被第二个进程锁定?

进程具有默认工作目录。 您可以使用 ProcessStartInfo.WorkingDirectory 设置其初始值。 你不能猛拉那个地板垫,它会在该目录上保持锁定,直到进程终止或使用 Environment.CurrentDirectory 更改其工作目录。 Second.exe的默认工作目录是 C:\MyFolder1,因为您没有设置它。

我不认为First.exe被停止了。请检查进程树。(文件夹 1 被此过程锁定)

使用 Process.WaitForExit 来确保它完成(并可能避免这 5 秒)

最新更新