| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3034 人关注过本帖
标题:习惯在路径加上Application.StartupPath
只看楼主 加入收藏
018
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2008-1-8
收藏
 问题点数:0 回复次数:2 
习惯在路径加上Application.StartupPath
今天在写程序的时候发现了一个很无奈的错误,找了2、3个钟,最后找同事,搞了1个钟,到最后才发现原来是路径的问题。

先写个简单的程序:

1、新建“windows应用程序”工程。
2、在工程目录的bin\Debug下新建一个018.txt,往里写一个行字“能读到我吗?”。

3、添加一个OpenFileDialog控件。改名为openFileDialog。

4、添加一个按钮,在按钮点击事件里添加下面代码:

            if (openFileDialog.ShowDialog() == DialogResult.OK)
            {
                MessageBox.Show("你选中了:" + openFileDialog.FileName);
                reader = new ("018.txt", Encoding.Default);
                MessageBox.Show("018.txt内容:" + reader.ReadLine());
            }

5、运行,点击按钮,选择不是bin\Debug下的文件。 结果“ reader = new ("018.txt", Encoding.Default);”出现异常。如果

                reader = new ("018.txt", Encoding.Default);
                MessageBox.Show("018.txt内容:" + reader.ReadLine());

放在if的前面就没问题。这是为什么呢?

其实细心一点就可以发现程序的当前目录变了才会出现异常。如果在if前加上

               MessageBox.Show("当前目录:" + Environment.CurrentDirectory.ToString());

和在if内加上

              MessageBox.Show("当前目录:" + Environment.CurrentDirectory.ToString());

在未选中文件时选中当前目录,到你选中了不是bin\Debug下的文件时,当前目录就变了。

以前老认为new ("018.txt", Encoding.Default);就会在程序目录下查找018.txt文件,今天终于彻底明白,原来是在“当前目录”下查找,“当前目录”是可以改变的。所以习惯在路径加上Application.StartupPath表示程序目录下的×××,如new (Application.StartupPath+@"\018.txt", Encoding.Default);就不会错了。
搜索更多相关主题的帖子: StartupPath 路径 
2008-08-25 21:24
seiya027848
Rank: 1
等 级:新手上路
帖 子:60
专家分:0
注 册:2008-6-27
收藏
得分:0 
恩,这个东西很重要
2008-08-26 09:09
coolszy
Rank: 1
来 自:编程论坛
等 级:新手上路
帖 子:241
专家分:5
注 册:2007-11-3
收藏
得分:0 
是啊
我也遇到过

天道酬勤
2008-08-26 11:12
快速回复:习惯在路径加上Application.StartupPath
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.011766 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved