В чем разница между абсолютным и относительным путем?
Я спрашиваю, потому что я работаю над проектом для школы. Да, это домашнее задание. Но, я пытаюсь понять немного больше, хотя.
Это один пример того, что задается.
• Когда пользователь нажимает кнопку "Сохранить", пишите выбранную запись в файл, указанный в 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
.
Это обычно происходит, когда вы не всегда знаете, где именно будет файл, например, какая буква диска будет установлена или в какой папке она будет находиться.
Однако для хорошего примера, если ваш файл пришел с вашей программой, и вы знаете структуру установки своих программ, вы можете использовать относительный путь для поиска всех ваших файлов независимо от того, где установлена ваша программа, а не отталкивать пути, где ваша программа будет необходимо устанавливать в одном и том же месте каждый раз.