日期:2014-05-17  浏览次数:21203 次

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有什么关系?
------解决方案--------------------
引用:
lz理解的“相对路径”是什么意思?
openFileDialog1.FileName跟AppDomain.CurrentDomain.BaseDirectory有什么关系?


这位是对的,对不起,我理解错了,
如果是项目下的文件就与项目路径匹配对应,
如果是其它文件则要找个对应的路径匹配
相对路径就是相对谁而言,
主要是确定一个对照物
------解决方案--------------------
比如说,winform 路径是C:\WinForm1\bin\Debug,而OpenFileDialog选择了文件D:\abc.txt,这时lz认为的“相对路径”是什么?
------解决方案--------------------
引用:
引用:

比如说,winform 路径是C:\WinForm1\bin\Debug,而OpenFileDialog选择了文件D:\abc.txt,这时lz认为的“相对路径”是什么?

我也不知道了,请大侠指教


这个问题你不知道就没人知道了。
请理解7L的回答。
------解决方案--------------------
还有这种的相对路径吗,这完全没啥关联,个人意见。
------解决方案--------------------
如果是放在Debug文件夹下那你试试这样
openFileDialog1.FileName.Replace(AppDomain.CurrentDomain.BaseDirectory, "")
------解决方案--------------------
- 对于 Windows 应用程序,可以使用 Application.ExecutablePath 属性
- 对于