已启动Process无法删除文件

时间:2010-11-05 15:34:06

标签: c# process delete-file

我有一个启动另一个程序的程序。在第二个程序中,我尝试删除文件。 如果我直接运行第二个程序,没问题,文件就会被删除。但是如果我从第一个程序启动第二个程序,我会得到一个System.UnauthorizedAccessException。

我的猜测是第二个程序没有获得第一个程序的所有访问权限。

我尝试了很多我发现的建议,但没有一个起作用 添加Process.StartInfo.Verb =“runas”无效 添加清单文件也不起作用(或者我做错了,不确定)
我将第二个文件的.exe设置为“以管理员身份运行”,但它不起作用。

现在,我该如何解决这个问题?

2 个答案:

答案 0 :(得分:2)

第一个程序使文件保持打开状态,因此第二个程序无法删除它。

您需要在第一个程序中关闭该文件。

答案 1 :(得分:1)

您可能错过Dispose()上的FileStream调用(例如)用于访问第一个程序中的文件。这可能会使底层文件在该程序中使用,尽管您认为与其关联的对象实例已经消失,因为它们超出了范围。

如果您想要更好的反馈,请发布一些代码。