Hi all i am using a save dialog box to save a text file to a loction becuse i cant hard code in the driectory. My problem is that i can save the first line of text that i write to the file but i want then to be able to save save another line of text but it ask me to over write the file is there any way to get around this so that i can save as many lines as i want .

My code:

private void btnSave_Click(object sender, EventArgs e)
        {
            Stream myStream;
            SaveFileDialog saveFileDialog1 = new SaveFileDialog();

            saveFileDialog1.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*";
            saveFileDialog1.FilterIndex = 2;
            saveFileDialog1.RestoreDirectory = true;


            if (saveFileDialog1.ShowDialog() == DialogResult.OK)
            {
                if ((myStream = saveFileDialog1.OpenFile()) != null)
                {
                    firstName = txtFirstName.Text;
                    lastName = txtLastName.Text;
                    phoneNoArea = Convert.ToInt32(txtAreaCode.Text);
                    phoneNo = Convert.ToInt32(txtPhoneNumber.Text);
                    birthMonth = txtBirthMonth.Text;
                    birthDay = Convert.ToInt32(txtDateOfBirth.Text);
                    Writer.WriteLine(firstName + Record + lastName + Record + phoneNoArea + Record + phoneNo + Record + birthMonth + Record + birthDay + Record);

                    // Clear the Text Boxes
                    txtFirstName.Clear();
                    txtLastName.Clear();
                    txtAreaCode.Clear();
                    txtPhoneNumber.Clear();
                    txtBirthMonth.Clear();
                    txtDateOfBirth.Clear();
                    MessageBox.Show("File Saved");
                    myStream.Close();
                }
            }

        }

you have to use streamWriter in this case

example usage:(stream writer)

using System;
using System.IO;

class Test 
{
	
    public static void Main() 
    {
        string path = @"c:\temp\MyTest.txt";
        try 
        {
            if (File.Exists(path)) 
            {
                File.Delete(path);
            }

            using (StreamWriter sw = new StreamWriter(path)) 
            {
                sw.WriteLine("This");
                sw.WriteLine("is some text");
                sw.WriteLine("to test");
                sw.WriteLine("Reading");
            }

            using (StreamReader sr = new StreamReader(path)) 
            {
                while (sr.Peek() >= 0) 
                {
                    Console.WriteLine(sr.ReadLine());
                }
            }
        } 
        catch (Exception e) 
        {
            Console.WriteLine("The process failed: {0}", e.ToString());
        }
    }
}

http://msdn.microsoft.com/en-us/library/system.io.streamreader.readline.aspx

I cant hard code in the address of the file

writer is to write lines of text to the file i am going to make and save with the save dialog box but when i try to save another line of text the the same file it asks me to over write the file but i don't want to over write the file i want to add text to the file just. The reason i am using save dialog box it that i can't hard code in the directory

A really simple solution.

private void AppendToFile(string path, string contents)
{
    try
    {
        StreamWriter sw = new StreamWriter(new FileStream(path, FileMode.Append, FileAccess.Write));
        sw.Write(contents);
        sw.Close();
    }
    catch (Exception e)
    { 
        Console.WriteLine(e.Message); 
    }
}
This article has been dead for over six months. Start a new discussion instead.