比如project目录是当前目录
该目录下有bin子目录
bin下有a.bin文件
结构project/bin/a.bin
由于我在project目录下 则我运行a.bin的命令为 bin/a.bin
a.bin文件的功能是以相对路径创建一个文件:
fp = fopen("resultl.txt", "w+");
那么为什么result.txt最终不是以a.bin所在的目录作为相对路径的起始点
却以我运行bin/a.bn这条命令的当前目录作为相对路径的起始点呢
如果是这样 每次一定要进入a.bin所在的目录运行才能得到正确的相对路径不是很麻烦吗
而别人写的软件是怎么做到的
比如其他软件,在任何位置运行他,他所产生的文件都是以软件的程序运行文件作为相对路径的起始,
而不是以用户当前所在的目录作为起始点。
难道都是绝对路径吗:如果是绝对路径,由于开发者不会知道使用者会将软件放到什么位置,那么必定有获得当前程序文件的代码,这个要用相对路径,而这样的话,相对路径又是在当前目录,又获取不到,这是怎么做到的
我的意思是最好不要用绝对路径 有办法嘛?
还有安装的话 如果我移动了执行程序所在目录 只要相关目录的结构不变依然可以用 主要是这点
软件一般都是有配置文件的,从配置文件中读路径
你自己的程序嘛,当然可以用相对路径,但你一定要确定相对“什么路径“
相对最后还是要转成绝对,不是你的程序就是系统
这样就可以了,一般在脚本开头会先获得当前工作路径,并切换到当前工作路径.
不懂可以问我.