今天调代码时遇到了一个问题,导致整个程序运行失败。调试了好久才解决了,下面和大家分享一下经验。
首先把问题抛出来:“未处理FIleNotFoundException”
这说明程序加载某个文件失败。当时遇到这个问题之后,自己想了半天感觉那都没有问题,但是程序就是不行了。于是就上网搜索,发现了“相对路径和绝对路径”。
我们先说相对路径,相对路径是什么呢?相对路径就是指由这个文件所在的路径引起的跟其他文件或文件夹的路径关系。他只表示在当前大的文件夹下的bin文件夹下的Debug文件夹
绝对路径是完整的描述文件位置的路径,下面看一下绝对路径:
最后说一下这个问题产生的原因:因为程序运行时,每一层的文件都进行编译存在在UIFrm层的bin文件Debug文件夹下,当程序运行时,就会在这里找它需要的文件,但是,每一层都有一个bin文件,所以当一个解决方案中项目比较多时,有时候生成的输出路径就会有问题。
知道了问题产生的原因了,我们怎么解决呢?假设我们用绝对路径,大家可以想象一下,如果我们使用了绝对路径那么以后我的文件夹从D盘移动到了F盘,那么我编写的这个程序代码运行就又会出错了,不灵活;那么我们怎么用相对路径解决这个问题呢?那就是用到上级目录,如何做呢?其实很简单,我们来看图:
如果我们这样写的话就可以解决问题了,“../”这表示的是上级目录,我们不需要给程序限定绝对路径,只需要给他限制到能确定文件夹的位置就可以了。
为了解决这个问题花了两个小时,我就想为什么这个问题浪费了那么长的时间才解决呢?我想是有很多原因造成的,但是其中必然的一个原因是搜索引擎用的不好,搜索问题的关键字抽象的不好,导致查好久才能查出真正需要的解决方法来!为什么搜索的关键字抽象的不好呢?因为对问题只看表面的,不认真观察、联想、思考!不观察和思考是学习的一大禁忌,所以在以后的学习和生活中遇到任何事情都要认真观察和思考!