今儿个咱来聊聊*这玩意儿。一开始我也不知道这是就知道项目里头老能瞅见它,感觉挺重要的,就想着好好弄明白它。
我以为这东西很高大上,结果一查,发现它就是个返回程序所在路径的玩意儿。说白,就是告诉你,你的程序搁哪个文件夹里呆着。
我琢磨着,这玩意儿有啥用?后来在实际操作中发现,用处还真不少!
第一步,我先是找代码。
因为之前没怎么留意,我先是在项目里全局搜索一下“*”,还真不少地方用到!
- 有的地方用它来读取配置文件。
- 有的地方用它来加载一些资源文件。
- 还有的地方,用它来拼接一些文件的完整路径。
第二步,尝试输出看看。
光看代码还不够直观,我得亲自试试。我在代码里加些输出语句,直接把*的值给打印出来。这一打印不要紧,发现这玩意儿返回的路径,有时候跟我想的不太一样!
有时候,它返回的是程序所在的文件夹,这我能理解。可有时候,它返回的是另一个文件夹,这就让我有点懵。
第三步,研究为啥不一样。
我开始各种查资料,翻文档。原来,这*返回的,是“工作目录”,不一定是程序所在的目录!
啥是工作目录?简单来说,就是程序运行的时候,默认从哪个文件夹里找东西。这个工作目录,是可以改的!
比如说,你双击运行一个程序,那工作目录通常就是程序所在的文件夹。但如果你是通过命令行启动程序,而且还切换目录,那工作目录就可能变成你切换后的那个目录!
第四步,在代码里修改并验证。
找到原因后我就给修改,比如我需要读取一个跟我程序放在一起的叫“*”的配置文件。之前代码直接用的“*”,这样在某些情况下就会找不到文件。现在我改成用* 加上 “/*”,这下就稳,不管工作目录是都能找到这个配置文件!
这回对于*的实践,让我更加熟悉路径相关的知识。以后再遇到类似的问题,我就知道该怎么处理。
这*虽然看起来简单,但里面的门道还真不少。这回实践让我对它有更深的理解,以后用起来也更顺手!