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