2013-07-16 12 views
0

我在寫入txt文件時遇到問題。如何在txt文件中編寫字符串,並在其他用戶打開應用程序時將其用於消息?

我的想法:

我想加載表單並創建一個打開的文件。如果表格也關閉文件。並且在Form_load方法中,我創建了第二個文件,其中包含用戶和machinname的信息,我希望在第二個文件(user_log)中寫入。如果其他用戶啓動應用程序,我希望他看到一個帶有此應用程序的用戶名稱的消息框。

這裏我的代碼:

private void Form1_Load(object sender, EventArgs e) 
     { 
      try 
      { 
       //Globale Datei wird erzeugt 
       var stream = File.Open("log.txt", FileMode.OpenOrCreate); 
       global_stream = stream; 

       //Benutzername und Rechnernummer wird ermitellt 
       string username = Benutzer.GetUsername(); 
       string machine = tarasov_lib.Computer.GetMachineName(); 

       // User_Log wird erstellt 
       using (var user_log = File.OpenWrite("user.txt")) 
       { 
        user_log.Write("Benutzername: " + username + " Rechnernummer: " + machine); //error 
       }  

      } 
      catch (Exception) 
      { 
       //Daten werden aus der User_log gelesen 
       TextDatei datei = new TextDatei(); 
       string info = datei.ReadLine("user.txt", 0); 

       MessageBox.Show(info); 
      } 

     } 

     private void Form1_FormClosing(object sender, FormClosingEventArgs e) 
     { 
      global_stream.Close(); 
     } 
+0

你得到什麼錯誤?嘗試將Catch參數更改爲'(Exception ex)',然後在Catch塊中使用'MessageBox.Show(ex.Message)'。這將顯示觸發該異常的錯誤。 – tinstaafl

+2

問題是,如果你不關閉你的'file1'和'file2'。其他用戶打開應用程序將會出錯,因爲應用程序無法打開文件,因爲它被使用 –

+0

非常糟糕的做法,不安全,您不能打開一個文件,讓另一個進程打開並工作,除非您有一個代理在這裏這樣做。 – 2013-07-16 08:00:29

回答

0

我想你可以複製日誌文件到負載之前臨時本地路徑,然後讀取新的內容之一。請記住在Read/Write之後立即關閉文件,而不要在表格關閉時關閉文件。

(評論任何想法,關於它的討論)

希望對大家有所幫助

相關問題