C++ 相对路径转换绝对路径,我现在只能用PathIsRelative方法判断字符串表示的路径是不是相对路径

但是,如果是相对路径时,怎么样把它转换为绝对路径就不知道了,我一开始是自己写算法,判断字符串中的../ ./,就是判断相对当前文件有几层,不过感觉不好,而且可能还有缺陷,API或者别的函数有没有方便一点的方法!!!
PS:小菜是刚转C++,所以还请各位大虾能贴出代码参考参考,谢谢鸟!!!

一般程序所说的相对路径就是当前程序所在的相对路径,
判断是不是绝对路径 你就判断下有没有盘符就行了 d: e:
转换绝对路径要先把系统当前路径获取到,有很多方法,你可以查下
当前程序路径+相对路径就是绝对路径了

你说的 ../是不是你的相对路径还有上层路径的。。追问

对啊,这个是怎么转换成绝对路径,要是没有../这个,我倒是会,直接在后面拼接就行了,可是有了这个东西,就不好办了,有没有什么现成的函数可以判断转换的

温馨提示:内容为网友见解,仅供参考
第1个回答  2012-11-19
具体情况不是很清楚~~希望能说的再清楚点~~~如果../都是事先知道的做个简单的偏移就好了。追问

假如说我的当前程序路径是E:\aa\bb\cc\123.exe,我传入一个参数是../test.txt或者../../../test.txt。我知道可以通过对../的判断而偏移位置,可是我总是感觉这样做有什么缺陷,毕竟参数是由用户输入的,他也不一定就输../../这种,所以希望用哪个函数方法啥的来做,有么??

追答

你可以使用 _splitpath 来拆分路径 然后根据自己的绝对路径组合
里面有5个参数 1是当前要拆分的路径,2是被拆分出的设备如"e:",3是路径(不包括2),4是文件名,5文件后缀。去MSDN上查下~这个还需要个头~里面有写~

本回答被提问者采纳
相似回答