Qual é a diferença entre um caminho absoluto e um relativo?

Estou perguntando porque estou trabalhando em um projeto para a escola. Sim esta é a lição de casa. Mas estou tentando entender um pouco mais.

Este é um exemplo do que está sendo perguntado.

• Quando o usuário clicar no botão “Salvar”, grave o registro selecionado no arquivo especificado em txtFilePath (caminho absoluto não relativo) sem truncar os valores atualmente dentro.

Isso é o que eu tenho

<code>private void button2_Click(object sender, EventArgs e)
{
    if (saveFileDialog1.ShowDialog() == DialogResult.OK)
    {
        StreamWriter myWriter = new StreamWriter(saveFileDialog1.FileName);
        myWriter.Write(txtFilePath.Text);
        myWriter.Close();
    }
}
</code>

Agora, não entendo se estou fazendo certo. Eu sei quando eu salvá-lo na minha área de trabalho e excluí-lo da minha caixa de listagem e quando tento recarregá-lo novamente nada aparece. Isso é o que eu tenho no meu formulário

<code>private void button1_Click(object sender, EventArgs e)
{
    if (openFileDialog1.ShowDialog() == DialogResult.OK)
    {
        StreamReader myReader = new StreamReader(openFileDialog1.FileName);
        txtFilePath.Text = openFileDialog1.FileName;
        txtFilePath.Text = myReader.ReadToEnd();
        myReader.Close();
    }
}    
</code>

E esta é a carga

<code>private void Form1_Load(object sender, EventArgs e)
{
    string[] myFiles = Directory.GetFiles("C:\\");
    foreach (string filename in myFiles)
    {
        FileInfo file = new FileInfo(filename);
        employeeList.Items.Add(file.Name);
    }

    //...
</code>

Alguém por favor pode me ajudar a entender isso?

questionAnswers(3)

yourAnswerToTheQuestion