2010-11-05 79 views
1

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

我的猜测是,第二个方案没有得到第一个节目的所有访问。

我试了很多建议,我发现,但没有一次成功。
添加Process.StartInfo.Verb =“runas”没有工作。
添加清单文件,没有工作是(或者我没有错,不知道)
我设置第二个文件为“以管理员身份运行”的.exe和它没有工作。

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

回答

2

第一个程序留下的文件打开,因此第二个程序无法删除它。

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

+0

啊该死的傻我。我想这太明显了。> – Wildhorn 2010-11-05 15:39:54

1

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

后,如果你想更好的回馈一些代码。