【发布时间】:2009-10-20 19:48:16
【问题描述】:
如何在 UseShellExecute 设置为 false 的情况下从 C# 调用子进程并允许删除文件?
子进程是一个java程序,创建一个0字节的文件,传输到远程服务器,然后删除。当我从 Windows 命令行执行 java 程序时,此功能有效。
如果我使用 System.Diagnostics.Process 实例从 C# 调用 java 程序,并将 StartInfo.UseShellExecute 设置为 false,则子进程不会删除该文件。事实上,处理停止并且没有任何反应。如果 Process 对象的 StartInfo.UseShellExecute 属性设置为 true,则子进程可以删除文件,并且父进程的执行继续进行。但是,我需要将 UseShellExecute 属性设置为 false,这样我才能重定向子进程的输出。
【问题讨论】:
-
我发现java进程在删除文件之前就停止了。有关详细信息,请参阅下面我对 Tim 的回答的评论。我应该根据我掌握的新信息删除这篇文章吗?
-
如果问题与文件删除无关,则问题不再准确。您可以只编辑它,但由于您要完全更改它,最好删除它并创建一个新的,以便它显示在“新”部分。