2012-04-23 1 views
10

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

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

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

    //... 

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

ответ

26

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

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

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

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

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

+5

+1, мне нравится эта аналогия. – kprobst

+0

Хорошая картографическая аналогия –

+0

Хорошо объяснено :) –

5

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

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

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

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

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

7

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

Вот некоторые примеры:

Абсолютных Дорожки

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

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

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

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

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

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