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

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

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

• когда пользователь нажимает кнопку "Сохранить", запишите выбранную запись в файл, указанный в 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);
    }

    //...

может кто-нибудь, пожалуйста, помогите мне понять это?

3 ответов


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

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

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

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

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


на самом деле это простое различие. А относительные путь к файлу будет структурой, основанной на корневом узле; и абсолютное path будет структурой, основанной на неоднозначном местоположении. Звучит как-то неубедительно, но на самом деле все очень просто.

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

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

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

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

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

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

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

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


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

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

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

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

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