13

我问是因为我正在为学校做一个项目。是的,这是家庭作业。但是,虽然,我试图了解更多一点。

这是所问内容的一个例子。

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

    //...

有人可以帮我理解这一点吗?

4

3 回答 3

31

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

  • 相对于你所处的位置,
  • 相对于地标。

两者都可以将您带到同一个位置,但前者并不总是有效(“向左走,然后向右走,穿过两个灯,然后再向右走”不一定从下一个城镇工作,而是从哪里工作你站着)。这就是本质上的区别。

如果你有C:\Windows\System32,那是一个绝对路径。如果你有Windows\System32,它只会在你C:\. 如果你从那里开始,C:\Program Files你需要一个..\才能正确到达那里。

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

于 2012-04-23T21:01:39.960 回答
8

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

这里有些例子:

绝对路径

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

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

相对路径

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

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

因此,与您的具体问题密切相关,您希望将文件写入特定的绝对路径,这意味着它需要是一个明确的位置。

于 2012-04-23T21:04:11.607 回答
5

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

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

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

这通常是在您不总是知道文件绝对在哪里时完成的,例如它将安装在哪个驱动器号或它将在哪个文件夹下。

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

于 2012-04-23T21:03:10.677 回答