今天在vs2010里读取相对路径下的图片文件出了点问题。于是查了一下相对路径的编程知识,记录下来分享给大家:
问题描写叙述:path=".\\TrainData\\"+img_path[i]; 比如为path=.\TrainData\1.jpg的时候,此图片到底在哪呢?
问题解决:此时.vcxproj 和当前执行的.cpp文件所在文件夹E:\vehicle\SVM_Train_Predict_HOG_vehicle train 64\SVM_Train_Predict_HOG。.sln文件所在文件夹E:\vehicle\SVM_Train_Predict_HOG_vehicle train 64,在此网页http://blog.csdn.net/sszgg2006/article/details/8447176 中查到:
"./" 加不加都一样,就是指当前文件夹,
"../" 表示当前文件夹的上级文件夹,即当前的父文件夹。这里的当前文件夹就是指.vcxproj和当前执行的.cpp文件所在文件夹E:\vehicle\SVM_Train_Predict_HOG_vehicle train 64\SVM_Train_Predict_HOG。而不是.sln文件所在文件夹。非常明显path=.\TrainData\1.jpg的时候,此图片所在文件夹为E:\vehicle\SVM_Train_Predict_HOG_vehicle train 64\SVM_Train_Predict_HOG\TrainData\1.jpg
补充:三、 VS2010默认的工作文件夹是$(ProjectDir)即与cpp文件同文件夹,见此參考网页: vs2010控制台程序工作文件夹和执行文件夹。