什么是路径
路径
在计算机中一般指一个文件或者目录的位置。绝对路径
的起点大抵分为两类,一类是Windows
所使用的基于盘符,以X:\
为起点,逻辑上的盘符对应物理的磁盘,更符合普通人的思维方式。另一类是以Linux
和UNIX
为代表(包括MacOS
)的基于根目录,以/
为起点,根目录是一个虚拟的位置,它挂载(mount)
于磁盘中的某个位置,由于较为复杂,本文不赘述相关概念了。
然后以/
或\
(或:
, .
等)分隔每段文本,以表示后者隶属于前者。
此外,一般地,.
表示当前目录,..
表示上级目录。
各个系统的路径规则不尽相同,这里附上wikipedia的链接: https://en.wikipedia.org/wiki/Path_(computing)
这样解释相比你看不懂,让我们换个形象的方法。
做个类比
小明住在C城幸福小区6楼8门808
,要去找小兰玩耍。
- 假设小兰住在
C城幸福小区6楼8门302
,那么小明需要先出屋门,然后去302。 - 假设小兰住在
C城幸福小区6楼2门708
,那么小明需要出屋门再出单元门,再去2门408。 - 假设小兰在
C城幸福小区门口
等小明,那么小明需要出屋门再出单元门离开楼。 - 假设小兰就在
C城幸福小区6楼8门808
里,那么小明需直接去找小兰即可。 - 假设小兰在
C城幸福小区6楼8门808的卧室
,那么小明需直接去卧室即可。 - 假设小兰在
C城幸福小区6楼8门808的卧室的床上
,那么小明需直接去卧室的床上即可。
以上一定不难理解,前者是小兰的绝对位置
,后者是小兰对于小明的相对位置
。
现在让我们稍作变化:
一个叫做小明.exe
的文件,位于C:\幸福\8\8\808\小明.exe
,需要读取小兰.data
中的数据。
- 假设数据位于
C:\幸福\6\8\302\小兰.data
,那么,..\302\小兰.data
。 - 假设数据位于
C:\幸福\6\2\708\小兰.data
,那么,..\..\2\408\小兰.data
。 - 假设数据位于
C:\幸福\小兰.data
,那么,..\..\..\小兰.data
。 - 假设数据位于
C:\幸福\6\8\808\小兰.data
,那么,小兰.data
。 - 假设数据位于
C:\幸福\6\8\808\卧室\小兰.data
,那么,卧室\小兰.data
。 - 假设数据位于
C:\幸福\6\8\808\卧室\床\小兰.data
,那么,卧室\床\小兰.data
。
前者便是绝对路径,后者便是相对路径。哪个更好
显然,相对路径
和绝对路径
都可以表示某一文件的位置,但二者各有所长。如果小兰始终位于某个固定位置,无疑用绝对路径
更好表达,但如果小兰和小明是一家人,即便经常搬家,使用相对路径
,他们也可以相互找到。所以,我们在电脑上安装的程序,他们的位置是不会改变的,所以快捷方式都使用绝对路径来表达;而在我们建立项目的时候,使用相对路径
是更好的,这样也可以避免污染环境,将自身生成的文件控制在项目自己的文件夹内。
如果你还有不明白的地方,欢迎留言讨论!