2009-10-20 46 views
1

如何從C#調用UseShellExecute設置爲false並允許文件刪除的子進程?不能刪除子進程內的文件從C#應用程序啓動

子進程是一個java程序創建一個0字節的文件,將其傳輸到遠程服務器,並刪除它。當我從Windows命令行執行java程序時,此功能起作用。

如果我使用System.Diagnostics.Process實例將StartInfo.UseShellExecute設置爲false,從C#調用java程序,則子進程不會刪除該文件。事實上,處理攤位並沒有任何反應。如果Process對象的StartInfo.UseShellExecute屬性設置爲true,則子進程可以刪除該文件,並繼續執行父進程。但是,我需要UseShellExecute屬性爲false,因此我可以重定向子進程的輸出。

+0

我發現java進程在文件刪除之前停滯不前。有關詳細信息,請參閱以下Tim對以下答案的評論。我應該根據我擁有的新信息刪除這篇文章嗎? – ecruz3 2009-10-20 20:31:52

+0

如果問題與文件刪除無關,那麼問題就不再準確。你可以編輯它,但是因爲你要完全改變它,所以刪除它並創建一個新的可能會更好,以便它顯示在「新的」部分。 – 2009-10-20 22:04:01

回答

0

這聽起來像它可能是原因?

http://hackage.haskell.org/trac/ghc/ticket/2650

(或者更具體地說,從那裏鏈接的Java issue

我遇到了類似的問題,前一段時間,它變成了由意外處理繼承引起的,但我不我不太清楚這會如何導致你描述的問題。

+0

在發佈我的問題後,我發現java進程在文件刪除之前就已經停止了!我不知道如何調試子進程,所以我插入了日誌語句。 Java進程在進行同步調用以獲取java.util.Collection 引用時死亡。 感謝您的幫助。 – ecruz3 2009-10-20 20:28:43

+0

不知道您用於Java開發的是什麼,但在NetBeans中,您可以使用「調試」菜單中的「附加調試器」命令來調試已啓動的過程。 – 2009-10-20 22:02:56

相關問題