2013-06-26 25 views
0

當我打電話這個功能,它只是打開幾個空的記事本窗口,但如果我運行後打開text2文件,它顯示我所有輸入的行......我甚至嘗試沖洗把所有的東西寫在緩衝區中,但沒有幫助。空的記事本文件,而不是寫在C#

static void finish() 
{ 
    FileStream fs2 = new FileStream("C:\\Users\\ayush.mishra\\Desktop\\text2.txt", FileMode.Create, FileAccess.Write); 
    using(StreamWriter s = new StreamWriter(fs2)) 
    { 
     s.WriteLine("This Notepad will self destruct in...."); 
     fs2.Flush(); 
     Process notepadProcess2 = Process.Start("C:\\Users\\ayush.mishra\\Desktop\\text2.txt"); 
     for (var i = 0; i < 40000000.00; i++); 
     notepadProcess2.CloseMainWindow(); 
     s.WriteLine(" ****** 5 ****** "); 
     fs2.Flush(); 
     notepadProcess2 = Process.Start("C:\\Users\\ayush.mishra\\Desktop\\text2.txt"); 
     for (var i = 0; i < 400000000; i++); 
     notepadProcess2.CloseMainWindow(); 
     s.WriteLine(" ****** 4 ****** "); 
     fs2.Flush(); 
     notepadProcess2 = Process.Start("C:\\Users\\ayush.mishra\\Desktop\\text2.txt"); 
     for (var i = 0; i < 400000000; i++); 
     notepadProcess2.CloseMainWindow(); 
     s.WriteLine(" ****** 3 ****** "); 
     fs2.Flush(); 
     notepadProcess2 = Process.Start("C:\\Users\\ayush.mishra\\Desktop\\text2.txt"); 
     for (var i = 0; i < 400000000; i++); 
     notepadProcess2.CloseMainWindow(); 
     notepadProcess2 = Process.Start("C:\\Users\\ayush.mishra\\Desktop\\text2.txt"); 
     s.WriteLine(" ****** 2 ****** "); 
     fs2.Flush(); 
     for (var i = 0; i < 400000000; i++); 
     notepadProcess2.CloseMainWindow(); 
     notepadProcess2 = Process.Start("C:\\Users\\ayush.mishra\\Desktop\\text2.txt"); 
     s.WriteLine(" ****** 1 ****** "); 
     fs2.Flush(); 
     for (var i = 0; i < 400000000; i++); 
     notepadProcess2.CloseMainWindow(); 
    } 
} 

有什麼建議嗎?

+1

該文件被鎖定,在這種情況下,記事本可能只是顯示空文件而不是錯誤消息。 –

+0

您可能需要使用'Thread.Sleep()'或'Timer'來進行定時,而不是迭代循環。即使增加4億次時間需要1秒鐘,10年後它在具有更快CPU的現代PC上也會一閃而過。由於類似的原因,一些最古老的電子遊戲在現代個人電腦上已經變得不那麼快。 – Nolonar

+0

關閉FileStream而不是刷新它。或者嘗試使用[FileSharing選項](http://msdn.microsoft.com/en-us/library/5h0z48dh.aspx)調用構造函數,但由於您正在創建新文件,因此可能沒有幫助。 – Artemix

回答

1

這裏的問題是,你在記事本中首先打開文件,然後寫入數據。由於文件已經在記事本中打開,所以它不會顯示更改。但是,如果您在記事本中再次打開文件,它將顯示寫入它的數據。

+0

已經打開的文件應該顯示在它之前的書面部分..這就是爲什麼我每次關閉它,但仍然顯示爲空每次... – Pundit

+0

所以記事本關閉時,當你調用notepadProcess2.CloseMainWindow()? –

+0

是的。它會終止進程..因此關閉記事本文件..您可以在主類中運行此方法以檢查輸出。 – Pundit

相關問題