我在问,因为我正在为学校做项目。是的,这是功课。但是,我试图更多地了解它。
这是被问及的一个例子。
•当用户单击“保存”按钮时,将所选记录写入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);
}
//...
有人可以帮我理解这个吗?
答案 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
。
这通常是在您不总是知道文件绝对位置的情况下完成的,例如它将安装在哪个驱动器盘符或者它将在哪个文件夹下。
但是有一个很好的例子,如果你的文件附带了你的程序并且你知道你的程序安装结构,那么你可以使用相对路径来查找所有文件,无论你的程序安装在哪里,而不是你的程序所在的绝对路径需要每次安装在完全相同的位置。