今天我在学习web的时候,发现 “./” 进行当前目录的话,并不管用。 回想起原来java编程用“./” 就是代表当前目录下的。具体编码请大家看下面图片
正常来讲 “./” 就是代表当前目录下,但是第20行却并没有显示成功。但绝对路径(第18行)却很成功。为了证实程序的当前路径,我还写了第11行的函数来验证。最后打印出来的路径确实是 “D:/MyGo/mygoweb” 这就很苦恼!
后来看了一篇博主的文章才知道, “./” 是当前的工程目录,并不是该go文件所对应的目录。 也就是说:
比如:我这里的 test1.go 文件,路径:MyGo/mygoweb/test1.go。
在 test1.go 中使用 “./” 其路径不是:MyGo/mygoweb/ ,而是:MyGo/
所以这也算一个坑吧。
但是对于这个问题,Go专门提供了一个处理文件路径兼容问题的包:package filepath。
filepath包实现了兼容各操作系统的文件路径的实用操作函数。
具体中文文档可见package filepath | Go 标准库 中文参考 (gitbooks.io)
总结:
绝对路径:即根本不会变的路径。就是把绝对路径当成地图上的某一个位置,在导航的时候那个目的地是一直在固定的经纬度的。而这个目的地的经纬度就是绝对路径的表示。
相对路径:会相对于你所在的位置而变化的路径。在导航的时候,总会听见距离目的地还有多少米,这个“还有多少米”就可以代表目的地的相对路径。、
- “.”就代表当前的目录位置
- “..”就代表为上以及目录的位置
- “/”代表的是根目录的位置