如果当前打开的文件中要寻找同级的目录文件就要用到 .\或者 ./ VC编译器都可以识别。例如#define ".XXXXxx.h"
如果当前打开的文件中要寻找在上级的目录文件就要用到 .. 或者 ../ VC编译器都可以识别。例如#define "..XXXXxx.h"
通过这样简单的标识,vc相对路径的问题就解决了,这样也就避免了设置繁琐的系统路径。当然了,设置相对路径要在编码的时候对文件的存放层次关系特别清楚,否则统一修改路径将会带来很大的工作量。
Ⅱ、绝对路径
方法1:
CString strPath;
GetCurrentDirectory(MAX_PATH,strPath.GetBuffer(MAX_PATH));
strPath.ReleaseBuffer();
filename=strPath+"\"+dlg.GetFileName();
方法2:
使用GetModuleFileName(NULL,exeFullPath,MAX_PATH);//得到程序模块名称,全路径
[cpp] view plaincopyprint?
![VC中获取文件的相对路径与绝对路径 vc 获取绝对路径](http://img.413yy.cn/images/31101031/31110341t016d6557d5e620669e.jpg)
CStringstrPath;
GetModuleFileName(NULL,strPath,MAX_PATH);
strPath.ReleaseBuffer();
filename=strPath+"\文件名.*";
CString strPath;GetModuleFileName(NULL,strPath,MAX_PATH);strPath.ReleaseBuffer();filename=strPath+"\文件名.*"; 在开发工程中,往往需要知道当前程序本身所在目录。一种方法是在程序安装的时候利用安装程序把文件路径写入注册表。在较大的程序中,这种方法比较常用;另一种,就是在程序得到路径。这样,程序随便移动到哪里,都可以得到正确的路径。这也是本文介绍的方法。
.\是的到应用程序的当前目录,但当前目录不一定等于应用程序执行文件的所在目录,一个应用程序被启动时,当前目录是可以被任意设置的;
GetModuleFileName()得到模块的完整路径名,例如,你载入c:windowssystem32a.dll,得到模块句柄h,则你可以用GetModuleFileName()得到h模块的完整路径名。