В чем разница между абсолютным и относительным путем?

Я спрашиваю, потому что я работаю над проектом для школы. Да, это домашнее задание. Но, я пытаюсь понять немного больше, хотя.

Это один пример того, что задается.

• Когда пользователь нажимает кнопку "Сохранить", пишите выбранную запись в файл, указанный в txtFilePath (абсолютный путь не относительный), не обрезая значения, находящиеся внутри.

Это то, что у меня есть,

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();
    }
}

Теперь я не понимаю, правильно ли я это делаю. Я знаю, когда я сохраняю его на своем рабочем столе, и я удаляю его из своего списка, и когда я пытаюсь перезагрузить его, ничего не появляется. Это то, что у меня есть в моей форме,

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();
    }
}    

И это нагрузка,

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);
    }

    //...

Кто-нибудь может помочь мне понять это?

Ответ 1

Скажите, что вы давали указания месту. У вас есть два метода, которые вы можете описать, чтобы добраться до места:

  • Относительно того, где вы стоите,
  • Относительно ориентира.

Оба вы попадаете в одно и то же место, но первое не всегда работает ( "возьмите левый, затем правый, пройдете через два огня, затем возьмите другое право", не обязательно будут работать из следующего города, но работает там, где вы стоите). Это по существу разница.

Если у вас C:\Windows\System32, это абсолютный путь. Если у вас есть Windows\System32, он будет работать только до тех пор, пока вы начинаете с C:\. Если вы начинаете с C:\Program Files, вам понадобится ..\, чтобы получить его правильно.

Однако, независимо от того, где вы находитесь на жестком диске, C:\Windows\System32\ - это окончательный способ доступа к этой папке.

Ответ 2

На самом деле это простое различие. Относительный путь к файлу будет представлять собой структуру, основанную на корневом каталоге node; и абсолютный путь будет структурой, основанной на неоднозначном местоположении. Это звучит немного странно, но на самом деле это довольно просто.

Вот несколько примеров:

Абсолютные пути

 C:\inetpub\yourapplication\default.aspx
 http://www.yourapplication.com/default.aspx

Эти пути абсолютны, потому что они не являются двусмысленными. В примере 1 показан абсолютный путь к файлу, а в примере 2 показан абсолютный URL-адрес.

Относительные пути

./../script/something.js
~/default.aspx

Относительный путь указывает местоположение, основанное на некоторой известной вышеописанной точке отсчета. Итак, в примере 1 вы знаете, чтобы перейти в один каталог, а затем в каталог под названием script, а затем в файл javascript. В примере два вы указываете страницу aspx, содержащуюся в корне вашего приложения.

Итак, в соответствии с вашей конкретной проблемой, вы хотите написать файл по определенному абсолютному пути, что означает, что это должно быть неоднозначное местоположение.

Ответ 3

Абсолютный путь - это полное имя пути, необходимое для доступа к местоположению в файловой системе.
Например: C:\Program Files\Internet Explorer\iexplorer.exe

Где в качестве относительного пути относится к какой-либо ориентире, обычно к месту вашего основного исполняемого файла или местоположению "начало", установленному при открытии программы.

Например, если ваш основной исполняемый файл находится в C:\Program Files\, относительный путь к iexplorer.exe равен Internet Explorer\iexplorer.exe.

Это обычно происходит, когда вы не всегда знаете, где именно будет файл, например, какая буква диска будет установлена ​​или в какой папке она будет находиться.

Однако для хорошего примера, если ваш файл пришел с вашей программой, и вы знаете структуру установки своих программ, вы можете использовать относительный путь для поиска всех ваших файлов независимо от того, где установлена ​​ваша программа, а не отталкивать пути, где ваша программа будет необходимо устанавливать в одном и том же месте каждый раз.