绝对路径和相对路径之间有什么区别?

时间:2012-04-23 20:58:32

标签: c# path relative-path absolute-path

我在问,因为我正在为学校做项目。是的,这是功课。但是,我试图更多地了解它。

这是被问及的一个例子。

  

•当用户单击“保存”按钮时,将所选记录写入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 个答案:

答案 0 :(得分:30)

假设您正在指示某个地点。您有两种方法可以描述到达该位置:

  • 相对于你的立场,
  • 相对于一个里程碑。

两者都会让你到同一个地方,但前者不会总是工作(“左转,然后右转,经过两盏灯再取右转”不一定有效从下一个小镇过来,但你站在哪里工作)。这基本上就是差异。

如果您有C:\Windows\System32,那就是绝对路径。如果您有Windows\System32,只有当您从C:\ 开始时,它才有效。如果您从C:\Program Files开始,则需要..\才能正确到达。

但是,无论您在硬盘上的哪个位置,C:\Windows\System32\都是到达该文件夹的明确方式。

答案 1 :(得分:7)

这实际上是一个简单的区别。 相对文件路径将是基于根节点的结构;并且绝对路径将是基于非模糊位置的结构。这听起来有点不稳定,但实际上非常简单。

以下是一些例子:

绝对路径

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

这些路径是绝对的,因为它们不含糊。示例1显示了绝对文件路径,示例2显示了绝对URL。

相对路径

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

相对路径根据某个已知的前方参考点指定位置。因此,在示例1中,您知道上一个目录,然后下到一个名为script的目录,然后到一个javascript文件。在示例二中,您指定了应用程序根目录中包含的aspx页面。

因此,根据您的具体问题,您希望将文件写入特定的绝对路径,这意味着它需要是一个非模糊的位置。

答案 2 :(得分:5)

绝对路径是访问文件系统中的位置所需的整个路径名 例如:C:\Program Files\Internet Explorer\iexplorer.exe

相对路径与某个地标有关,通常是您的主要可执行文件位置或打开程序时设置的“开始”位置。

例如,如果您的主要可执行文件位于C:\Program Files\iexplorer.exe的相对路径为Internet Explorer\iexplorer.exe

这通常是在您不总是知道文件绝对位置的情况下完成的,例如它将安装在哪个驱动器盘符或者它将在哪个文件夹下。

但是有一个很好的例子,如果你的文件附带了你的程序并且你知道你的程序安装结构,那么你可以使用相对路径来查找所有文件,无论你的程序安装在哪里,而不是你的程序所在的绝对路径需要每次安装在完全相同的位置。