Como substituir um arquivo se ele já existe?

Estou fazendo um music player. Tem 2 formas; uma é a área principal onde você toca música. O segundo formulário possui um CheckedListBox, onde você seleciona os mp3s que deseja. Quando clico em um botão, ele salva a seleção em um arquivo .txt para que eu possa acessá-los da primeira forma, onde colocarei as strings nos caminhos para o music player encontrar os arquivos.

Este é o código no meu segundo formulário, onde eu salvo as músicas selecionadas em arquivos .txt.

private void selectbtn_Click(object sender, EventArgs e)
{
    if (File.Exists(@"C:\Users\Me\Desktop\JAM_MACHINE\JAMS\record.txt"))
    {
       File.WriteAllText(@"C:\Users\Me\Desktop\JAM_MACHINE\JAMS\record.txt", String.Empty);
    }

    string[] checkedtitles = new string[checkedListBox1.CheckedItems.Count]; 

    for (int ii = 0; ii < checkedListBox1.CheckedItems.Count; ii++)
    {
        checkedtitles[ii] = checkedListBox1.CheckedItems[ii].ToString();
    }
    string selectedSongs = String.Join(Environment.NewLine, checkedtitles); 

    songRecord.writeRecord(selectedSongs); //I initialised the class containing streamwriter/reader, and called it songRecord
    this.Close();   
}

O problema é que, sempre que fecho o programa e o abro novamente, não consigo reescrever / limpar o arquivo .txt. Apenas adiciona ao arquivo existente. Existe algo que eu não estou fazendo certo?

Aqui estão meus códigos de leitor / gravador de stream. Tenho certeza de que o fechei depois de executar também, mas talvez alguém possa descobrir o que está errado:

namespace songss
{
    class DataRecord
    {
    public void writeRecord(string line)
    {
        StreamWriter sw = null;
        try
        {
            sw = new StreamWriter(@"C:\Users\Me\Desktop\JAM_MACHINE\record.txt", true);
            sw.WriteLine(line);
        }
        catch (FileNotFoundException)
        {
            Console.WriteLine("Error: File not found.");
        }
        catch (IOException)
        {
            Console.WriteLine("Error: IO");
        }
        catch(Exception)
        {
            throw;
        }
        finally
        {
            if (sw != null)
                sw.Close();
        }
        }

 public void readRecord()
    {
        StreamReader sr = null;
        string myInputline;
        try
        {
            sr = new StreamReader(@"C:\Users\Me\Desktop\JAM_MACHINE\record.txt");
            while ((myInputline = sr.ReadLine()) != null) ; //readline reads whole line
            Console.WriteLine(myInputline);
        }
        catch (FileNotFoundException)
        {
            Console.WriteLine("Error: File not found");
        }
        catch(IOException)
        {
            Console.WriteLine("Error: IO");
        }
        catch (Exception)
        {
            throw;
        }
        finally
        {
            if (sr != null)
                sr.Close();
        }
    }
    }
    }

questionAnswers(3)

yourAnswerToTheQuestion