c# 相对路径和绝对路径问题
按下按钮,选择文件后,在对应的TextBox中显示文件绝对路径,怎么修改代码才能实现在TextBox中显示相对路径。麻烦哪位大侠帮忙解决。小弟感激不尽
private void button1_Click(object sender, EventArgs e)
{
this.openFileDialog1.Filter = "|*.*";
if (this.openFileDialog1.ShowDialog() == DialogResult.OK)
{
string FileName = this.openFileDialog1.FileName; // 处理文件路径代码
this.txtPath.Text = openFileDialog1.FileName; //在TextBox中显示相对路径
}
}
[解决办法]
根据AppDomain.CurrentDomain.BaseDirectory 和全路径,自己匹配,替换
[解决办法]
OpenFileDialog op1;
string r = op1.SafeFileName;
是不是这个意思?
[解决办法]
绝对路径中肯定是包含AppDomain.CurrentDomain.BaseDirectory的,
将AppDomain.CurrentDomain.BaseDirectory去掉就是相对路径了
[解决办法]
lz理解的“相对路径”是什么意思?
openFileDialog1.FileName跟AppDomain.CurrentDomain.BaseDirectory有什么关系?
[解决办法]
这位是对的,对不起,我理解错了,
如果是项目下的文件就与项目路径匹配对应,
如果是其它文件则要找个对应的路径匹配
相对路径就是相对谁而言,
主要是确定一个对照物
[解决办法]
比如说,winform 路径是C:\WinForm1\bin\Debug,而OpenFileDialog选择了文件D:\abc.txt,这时lz认为的“相对路径”是什么?
[解决办法]
这个问题你不知道就没人知道了。
请理解7L的回答。
[解决办法]
还有这种的相对路径吗,这完全没啥关联,个人意见。
[解决办法]
如果是放在Debug文件夹下那你试试这样
openFileDialog1.FileName.Replace(AppDomain.CurrentDomain.BaseDirectory, "")
[解决办法]
- 对于 Windows 应用程序,可以使用 Application.ExecutablePath 属性
- 对于 Web 项目,可以使用 Server.MapPath 直接把应用程序相对路径转成物理绝对路径。
[解决办法]
winform自身就可以带配置文件的,就是扩展名为.config的文件
[解决办法]
绝对路径:
this.txtPath.Text = openFileDialog1.FileName;
相对路径就是文件名称加文件扩展后缀(如:XXX.txt)
[解决办法]
在config文件中的<appSettings>节点中加入<add key="XXX" value="相对路径"/>
然后在程序中读取
string relativePath = ConfigurationManager.AppSettings["XXX"];
要添加System.Configuration的引用