C# textfile only contains last string written to file with StreamWriter -


i'm writing chat program in c# (windows forms application), solution contains projects both consist of 1 form ( see picture ). while sending messages each other works, i'm trying record conversation session in .txt file named datetime.txt using streamwriter. creating file if not exist yet works, whenever open text file, contains last string written instead of containing whole "conversation". know how fix this?

enter image description here

this code of 1 of forms, since forms same, code same i'm posting code of 1 form. great if knows have change whole conversation recorded in text file.

namespace assignment3client {     public partial class chat : form     {         namedpipeclientstream clientpipe = new     namedpipeclientstream("pipe2");         namedpipeserverstream serverpipe = new namedpipeserverstream("pipe1");         string msg = string.empty;         string msgstr;         string name;         byte[] clientbyte;          public chat()         {             initializecomponent();         }          private void btnstartchat_click(object sender, eventargs e)         {             this.text = "waiting connection....";              if (txtboxname.text.length == 0)             {                 messagebox.show("please enter name first.");             }             else             {                 name = txtboxname.text;                 clientpipe.connect();                 serverpipe.waitforconnection();                 if (serverpipe.isconnected)                 {                     this.text = "you connected, " + name + "!";                     btnstartchat.enabled = false;                     btnsend.enabled = true;                     txtboxmsg.enabled = true;                     txtboxmsg.focus();                     receiveworker.runworkerasync();                 }             }          }          private void btnsend_click(object sender, eventargs e)         {             msg = "[" + name + ": " + datetime.now + "]  " + txtboxmsg.text;             txtboxchat.appendtext(msg + "\n");             filewriter(msg);             sendworker.runworkerasync(msg); //start backgroundworker , parse msg string dowork method             txtboxmsg.clear();             txtboxmsg.focus();          }          private void sendworker_dowork(object sender, doworkeventargs e)         {             byte[] msgbyte = system.text.encoding.getencoding("windows-1256").getbytes(msg);             serverpipe.write(msgbyte, 0, msg.length);         }          private void receiveworker_dowork(object sender, doworkeventargs e)         {             clientbyte = new byte[1000];             int i;             (i = 0; < clientbyte.length; i++)             {                 clientbyte[i] = 0x20;             }              clientpipe.read(clientbyte, 0, clientbyte.length);             msgstr = system.text.encoding.getencoding("windows-1256").getstring(clientbyte);             receiveworker.reportprogress(i, msgstr);         }          private void receiveworker_progresschanged(object sender, progresschangedeventargs e)         {             if ((string)e.userstate == string.empty)             { messagebox.show("no message"); }             else             {                 string message = (string)e.userstate;                 txtboxchat.appendtext(message);                 filewriter(message);                 txtboxchat.backcolor = system.drawing.color.darkblue;                 txtboxchat.forecolor = system.drawing.color.white;              }         }         private void receiveworker_runworkercompleted(object sender, runworkercompletedeventargs e)         {             if (clientpipe.isconnected)              {                 receiveworker.runworkerasync();             }             else             {                 txtboxmsg.enabled = false;                 btnsend.enabled = false;                 messagebox.show("connection lost");              }         }          private void chat_activated(object sender, eventargs e)         {             txtboxchat.backcolor = new system.drawing.color();             txtboxchat.forecolor = new system.drawing.color();         }          private void exitmenustrip_click(object sender, eventargs e)         {             this.close();         }          private void conmenusrip_click(object sender, eventargs e)         {          }          private void errmenustrip_click(object sender, eventargs e)         {          }          public void filewriter(string message)         {             string path = @"c:\users\selin\documents\tafe\term 3\datetime.txt";             filestream conlog;             if (!file.exists(path))             {                 conlog = new filestream(path, filemode.create);             }             else             {                 conlog = new filestream(path, filemode.open);             }             streamwriter writer = new streamwriter(conlog);             writer.writeline(message);             writer.autoflush = true;             writer.close();             messagebox.show("written file" + message);         }     } } 

in filewriter(string message) change

conlog = new filestream(path, filemode.open); 

to

conlog = new filestream(path, filemode.append); 

Comments

Popular posts from this blog

Is there a better way to structure post methods in Class Based Views -

performance - Why is XCHG reg, reg a 3 micro-op instruction on modern Intel architectures? -

jquery - Responsive Navbar with Sub Navbar -